Skip to content

Commit a1637bf

Browse files
committed
refactor: replace pydantic_core.from_json by json.loads
1 parent 34e66a3 commit a1637bf

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

src/mcp/server/streamable_http.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
responses, with streaming support for long-running operations.
77
"""
88

9-
import json
109
import logging
1110
import re
1211
from abc import ABC, abstractmethod
@@ -17,17 +16,15 @@
1716
from typing import Any
1817

1918
import anyio
19+
import pydantic_core
2020
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
2121
from pydantic import ValidationError
2222
from sse_starlette import EventSourceResponse
2323
from starlette.requests import Request
2424
from starlette.responses import Response
2525
from starlette.types import Receive, Scope, Send
2626

27-
from mcp.server.transport_security import (
28-
TransportSecurityMiddleware,
29-
TransportSecuritySettings,
30-
)
27+
from mcp.server.transport_security import TransportSecurityMiddleware, TransportSecuritySettings
3128
from mcp.shared.message import ServerMessageMetadata, SessionMessage
3229
from mcp.shared.version import SUPPORTED_PROTOCOL_VERSIONS
3330
from mcp.types import (
@@ -453,9 +450,8 @@ async def _handle_post_request(self, scope: Scope, request: Request, receive: Re
453450
body = await request.body()
454451

455452
try:
456-
# TODO(Marcelo): Replace `json.loads` with `pydantic_core.from_json`.
457-
raw_message = json.loads(body)
458-
except json.JSONDecodeError as e:
453+
raw_message = pydantic_core.from_json(body)
454+
except ValueError as e:
459455
response = self._create_error_response(f"Parse error: {str(e)}", HTTPStatus.BAD_REQUEST, PARSE_ERROR)
460456
await response(scope, receive, send)
461457
return

0 commit comments

Comments
 (0)