Merge pull request #108 from modelcontextprotocol/davidsp/fix-103

Fix Bug: request_meta is not available in server.request_context #103
This commit is contained in:
David Soria Parra 2024-12-21 23:17:03 +00:00 • committed by GitHub
commit e691c511ab
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 8 additions and 8 deletions

View file

@ -102,9 +102,9 @@ class SseServerTransport:
self._read_stream_writers[session_id] = read_stream_writer self._read_stream_writers[session_id] = read_stream_writer
logger.debug(f"Created new session with ID: {session_id}") logger.debug(f"Created new session with ID: {session_id}")
sse_stream_writer, sse_stream_reader = anyio.create_memory_object_stream( sse_stream_writer, sse_stream_reader = anyio.create_memory_object_stream[
0, dict[str, Any] dict[str, Any]
) ](0)
async def sse_writer(): async def sse_writer():
logger.debug("Starting SSE writer") logger.debug("Starting SSE writer")

View file

@ -221,7 +221,7 @@ class BaseSession(
) )
responder = RequestResponder( responder = RequestResponder(
request_id=message.root.id, request_id=message.root.id,
request_meta=validated_request.root.params._meta request_meta=validated_request.root.params.meta
if validated_request.root.params if validated_request.root.params
else None, else None,
request=validated_request, request=validated_request,

View file

@ -1,6 +1,6 @@
from typing import Any, Generic, Literal, TypeVar from typing import Any, Generic, Literal, TypeVar
from pydantic import BaseModel, ConfigDict, FileUrl, RootModel from pydantic import BaseModel, ConfigDict, Field, FileUrl, RootModel
from pydantic.networks import AnyUrl from pydantic.networks import AnyUrl
""" """
@ -39,14 +39,14 @@ class RequestParams(BaseModel):
model_config = ConfigDict(extra="allow") model_config = ConfigDict(extra="allow")
_meta: Meta | None = None meta: Meta | None = Field(alias="_meta", default=None)
class NotificationParams(BaseModel): class NotificationParams(BaseModel):
class Meta(BaseModel): class Meta(BaseModel):
model_config = ConfigDict(extra="allow") model_config = ConfigDict(extra="allow")
_meta: Meta | None = None meta: Meta | None = Field(alias="_meta", default=None)
""" """
This parameter name is reserved by MCP to allow clients and servers to attach This parameter name is reserved by MCP to allow clients and servers to attach
additional metadata to their notifications. additional metadata to their notifications.
@ -86,7 +86,7 @@ class Result(BaseModel):
model_config = ConfigDict(extra="allow") model_config = ConfigDict(extra="allow")
_meta: dict[str, Any] | None = None meta: dict[str, Any] | None = Field(alias="_meta", default=None)
""" """
This result property is reserved by the protocol to allow clients and servers to This result property is reserved by the protocol to allow clients and servers to
attach additional metadata to their responses. attach additional metadata to their responses.