Skip to content

Commit e691c51

Browse files
authored
Merge pull request #108 from modelcontextprotocol/davidsp/fix-103
Fix Bug: request_meta is not available in server.request_context #103
2 parents dd1a069 + 52e69ef commit e691c51

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

Diff for: src/mcp/server/sse.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ async def connect_sse(self, scope: Scope, receive: Receive, send: Send):
102102
self._read_stream_writers[session_id] = read_stream_writer
103103
logger.debug(f"Created new session with ID: {session_id}")
104104

105-
sse_stream_writer, sse_stream_reader = anyio.create_memory_object_stream(
106-
0, dict[str, Any]
107-
)
105+
sse_stream_writer, sse_stream_reader = anyio.create_memory_object_stream[
106+
dict[str, Any]
107+
](0)
108108

109109
async def sse_writer():
110110
logger.debug("Starting SSE writer")

Diff for: src/mcp/shared/session.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ async def _receive_loop(self) -> None:
221221
)
222222
responder = RequestResponder(
223223
request_id=message.root.id,
224-
request_meta=validated_request.root.params._meta
224+
request_meta=validated_request.root.params.meta
225225
if validated_request.root.params
226226
else None,
227227
request=validated_request,

Diff for: src/mcp/types.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Any, Generic, Literal, TypeVar
22

3-
from pydantic import BaseModel, ConfigDict, FileUrl, RootModel
3+
from pydantic import BaseModel, ConfigDict, Field, FileUrl, RootModel
44
from pydantic.networks import AnyUrl
55

66
"""
@@ -39,14 +39,14 @@ class Meta(BaseModel):
3939

4040
model_config = ConfigDict(extra="allow")
4141

42-
_meta: Meta | None = None
42+
meta: Meta | None = Field(alias="_meta", default=None)
4343

4444

4545
class NotificationParams(BaseModel):
4646
class Meta(BaseModel):
4747
model_config = ConfigDict(extra="allow")
4848

49-
_meta: Meta | None = None
49+
meta: Meta | None = Field(alias="_meta", default=None)
5050
"""
5151
This parameter name is reserved by MCP to allow clients and servers to attach
5252
additional metadata to their notifications.
@@ -86,7 +86,7 @@ class Result(BaseModel):
8686

8787
model_config = ConfigDict(extra="allow")
8888

89-
_meta: dict[str, Any] | None = None
89+
meta: dict[str, Any] | None = Field(alias="_meta", default=None)
9090
"""
9191
This result property is reserved by the protocol to allow clients and servers to
9292
attach additional metadata to their responses.

0 commit comments

Comments
 (0)