mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2025-12-19 14:54:24 +01:00
fix: use pydantic Field with alias for _meta fields
Pydantic treats fields starting with underscore as private/hidden. To fix this, we need to use Field with alias='_meta' to properly handle these fields while keeping the external API unchanged. This fixes #103 where meta fields were not being properly assigned in request contexts.
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user