From 04ad96e6cd549d8e10fc6a8b04df109e45a29b57 Mon Sep 17 00:00:00 2001 From: David Soria Parra Date: Fri, 11 Oct 2024 10:55:55 +0100 Subject: [PATCH] Typing fixes Strict pyright mode results in a lot of issues regarding non fully determined types, due to Generics. These are some issues I came across today. We are still far from being clean on pyright. --- mcp_python/server/__init__.py | 6 +++--- mcp_python/server/stdio.py | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/mcp_python/server/__init__.py b/mcp_python/server/__init__.py index 375cbfe..581f259 100644 --- a/mcp_python/server/__init__.py +++ b/mcp_python/server/__init__.py @@ -20,6 +20,8 @@ from mcp_python.types import ( CompleteRequest, ErrorData, JSONRPCMessage, + ListPromptsRequest, + ListPromptsResult, ListResourcesRequest, ListResourcesResult, LoggingLevel, @@ -57,8 +59,6 @@ class Server: return request_ctx.get() def list_prompts(self): - from mcp_python.types import ListPromptsRequest, ListPromptsResult - def decorator(func: Callable[[], Awaitable[list[Prompt]]]): logger.debug(f"Registering handler for PromptListRequest") @@ -90,7 +90,7 @@ class Server: async def handler(req: GetPromptRequest): prompt_get = await func(req.params.name, req.params.arguments) - messages = [] + messages: list[SamplingMessage] = [] for message in prompt_get.messages: match message.content: case str() as text_content: diff --git a/mcp_python/server/stdio.py b/mcp_python/server/stdio.py index bfcc76c..b55df0e 100644 --- a/mcp_python/server/stdio.py +++ b/mcp_python/server/stdio.py @@ -7,10 +7,9 @@ from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStre from mcp_python.types import JSONRPCMessage - @asynccontextmanager async def stdio_server( - stdin: anyio.AsyncFile | None = None, stdout: anyio.AsyncFile | None = None + stdin: anyio.AsyncFile[str] | None = None, stdout: anyio.AsyncFile[str] | None = None ): """ Server transport for stdio: this communicates with an MCP client by reading from the current process' stdin and writing to stdout.