Merge pull request #15 from modelcontextprotocol/davidsp/type-fixes

Type Fixes
This commit is contained in:
David Soria Parra
2024-10-11 14:06:10 +01:00
committed by GitHub
4 changed files with 9 additions and 11 deletions

View File

@@ -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:

View File

@@ -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.

View File

@@ -41,23 +41,23 @@ class NotificationParams(BaseModel):
This parameter name is reserved by MCP to allow clients and servers to attach additional metadata to their notifications.
"""
RequestParamsT = TypeVar("RequestParamsT", bound=RequestParams)
NotificationParamsT = TypeVar("NotificationParamsT", bound=NotificationParams)
MethodT = TypeVar("MethodT", bound=str)
class Request(BaseModel, Generic[RequestParamsT]):
class Request(BaseModel, Generic[RequestParamsT, MethodT]):
"""Base class for JSON-RPC requests."""
method: str
method: MethodT
params: RequestParamsT
model_config = ConfigDict(extra="allow")
class Notification(BaseModel, Generic[NotificationParamsT]):
class Notification(BaseModel, Generic[NotificationParamsT, MethodT]):
"""Base class for JSON-RPC notifications."""
method: str
method: MethodT
model_config = ConfigDict(extra="allow")

View File

@@ -22,7 +22,6 @@ packages = ["mcp_python"]
[tool.pyright]
include = ["mcp_python", "tests"]
typeCheckingMode = "strict"
venvPath = "."
venv = ".venv"