Skip to content

Commit 1d98c5c

Browse files
dsp-antclaude
andcommitted
refactor: rename ParsedMessage to MessageFrame for clarity
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 5be7a25 commit 1d98c5c

File tree

9 files changed

+40
-40
lines changed

9 files changed

+40
-40
lines changed

src/mcp/client/sse.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import mcp.types as types
1212
from mcp.shared.session import (
13-
ParsedMessage,
13+
MessageFrame,
1414
ReadStream,
1515
ReadStreamWriter,
1616
WriteStream,
@@ -90,7 +90,7 @@ async def sse_reader(
9090

9191
case "message":
9292
try:
93-
message = ParsedMessage(
93+
message = MessageFrame(
9494
types.JSONRPCMessage.model_validate_json( # noqa: E501
9595
sse.data
9696
),

src/mcp/server/sse.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ async def handle_sse(request):
4646

4747
import mcp.types as types
4848
from mcp.shared.session import (
49-
ParsedMessage,
49+
MessageFrame,
5050
ReadStream,
5151
ReadStreamWriter,
5252
WriteStream,
@@ -176,4 +176,4 @@ async def handle_post_message(
176176
logger.debug(f"Sending message to writer: {message}")
177177
response = Response("Accepted", status_code=202)
178178
await response(scope, receive, send)
179-
await writer.send(ParsedMessage(message, raw=request))
179+
await writer.send(MessageFrame(message, raw=request))

src/mcp/server/stdio.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ async def run_server():
2727

2828
import mcp.types as types
2929
from mcp.shared.session import (
30-
ParsedMessage,
30+
MessageFrame,
3131
ReadStream,
3232
ReadStreamWriter,
3333
WriteStream,
@@ -72,7 +72,7 @@ async def stdin_reader():
7272
await read_stream_writer.send(exc)
7373
continue
7474

75-
await read_stream_writer.send(ParsedMessage(message, raw=line))
75+
await read_stream_writer.send(MessageFrame(message, raw=line))
7676
except anyio.ClosedResourceError:
7777
await anyio.lowlevel.checkpoint()
7878

src/mcp/server/websocket.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import mcp.types as types
99
from mcp.shared.session import (
10-
ParsedMessage,
10+
MessageFrame,
1111
ReadStream,
1212
ReadStreamWriter,
1313
WriteStream,
@@ -47,7 +47,7 @@ async def ws_reader():
4747
continue
4848

4949
await read_stream_writer.send(
50-
ParsedMessage(client_message, raw=message)
50+
MessageFrame(client_message, raw=message)
5151
)
5252
except anyio.ClosedResourceError:
5353
await websocket.close()

src/mcp/shared/memory.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111

1212
from mcp.client.session import ClientSession, ListRootsFnT, SamplingFnT
1313
from mcp.server import Server
14-
from mcp.shared.session import ParsedMessage
14+
from mcp.shared.session import MessageFrame
1515

1616
MessageStream = tuple[
17-
MemoryObjectReceiveStream[ParsedMessage | Exception],
18-
MemoryObjectSendStream[ParsedMessage],
17+
MemoryObjectReceiveStream[MessageFrame | Exception],
18+
MemoryObjectSendStream[MessageFrame],
1919
]
2020

2121

@@ -32,10 +32,10 @@ async def create_client_server_memory_streams() -> (
3232
"""
3333
# Create streams for both directions
3434
server_to_client_send, server_to_client_receive = anyio.create_memory_object_stream[
35-
ParsedMessage | Exception
35+
MessageFrame | Exception
3636
](1)
3737
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[
38-
ParsedMessage | Exception
38+
MessageFrame | Exception
3939
](1)
4040

4141
client_streams = (server_to_client_receive, client_to_server_send)

src/mcp/shared/session.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,18 @@
3131
RawT = TypeVar("RawT")
3232

3333

34-
class ParsedMessage(RootModel[JSONRPCMessage], Generic[RawT]):
34+
class MessageFrame(RootModel[JSONRPCMessage], Generic[RawT]):
3535
root: JSONRPCMessage
3636
raw: RawT | None = None
3737

3838
class Config:
3939
arbitrary_types_allowed = True
4040

4141

42-
ReadStream = MemoryObjectReceiveStream[ParsedMessage[RawT] | Exception]
43-
ReadStreamWriter = MemoryObjectSendStream[ParsedMessage[RawT] | Exception]
44-
WriteStream = MemoryObjectSendStream[ParsedMessage[RawT]]
45-
WriteStreamReader = MemoryObjectReceiveStream[ParsedMessage[RawT]]
42+
ReadStream = MemoryObjectReceiveStream[MessageFrame[RawT] | Exception]
43+
ReadStreamWriter = MemoryObjectSendStream[MessageFrame[RawT] | Exception]
44+
WriteStream = MemoryObjectSendStream[MessageFrame[RawT]]
45+
WriteStreamReader = MemoryObjectReceiveStream[MessageFrame[RawT]]
4646

4747
SendRequestT = TypeVar("SendRequestT", ClientRequest, ServerRequest)
4848
SendResultT = TypeVar("SendResultT", ClientResult, ServerResult)
@@ -259,7 +259,7 @@ async def send_request(
259259
# TODO: Support progress callbacks
260260

261261
await self._write_stream.send(
262-
ParsedMessage(JSONRPCMessage(jsonrpc_request), None)
262+
MessageFrame(JSONRPCMessage(jsonrpc_request), None)
263263
)
264264

265265
try:
@@ -297,15 +297,15 @@ async def send_notification(self, notification: SendNotificationT) -> None:
297297
)
298298

299299
await self._write_stream.send(
300-
ParsedMessage(JSONRPCMessage(jsonrpc_notification))
300+
MessageFrame(JSONRPCMessage(jsonrpc_notification))
301301
)
302302

303303
async def _send_response(
304304
self, request_id: RequestId, response: SendResultT | ErrorData
305305
) -> None:
306306
if isinstance(response, ErrorData):
307307
jsonrpc_error = JSONRPCError(jsonrpc="2.0", id=request_id, error=response)
308-
await self._write_stream.send(ParsedMessage(JSONRPCMessage(jsonrpc_error)))
308+
await self._write_stream.send(MessageFrame(JSONRPCMessage(jsonrpc_error)))
309309
else:
310310
jsonrpc_response = JSONRPCResponse(
311311
jsonrpc="2.0",
@@ -315,7 +315,7 @@ async def _send_response(
315315
),
316316
)
317317
await self._write_stream.send(
318-
ParsedMessage(JSONRPCMessage(jsonrpc_response))
318+
MessageFrame(JSONRPCMessage(jsonrpc_response))
319319
)
320320

321321
async def _receive_loop(self) -> None:

tests/client/test_session.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pytest
33

44
from mcp.client.session import ClientSession
5-
from mcp.shared.session import ParsedMessage
5+
from mcp.shared.session import MessageFrame
66
from mcp.types import (
77
LATEST_PROTOCOL_VERSION,
88
ClientNotification,
@@ -22,10 +22,10 @@
2222
@pytest.mark.anyio
2323
async def test_client_session_initialize():
2424
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[
25-
ParsedMessage[None]
25+
MessageFrame[None]
2626
](1)
2727
server_to_client_send, server_to_client_receive = anyio.create_memory_object_stream[
28-
ParsedMessage[None]
28+
MessageFrame[None]
2929
](1)
3030

3131
initialized_notification = None
@@ -57,7 +57,7 @@ async def mock_server():
5757

5858
async with server_to_client_send:
5959
await server_to_client_send.send(
60-
ParsedMessage(
60+
MessageFrame(
6161
root=JSONRPCMessage(
6262
JSONRPCResponse(
6363
jsonrpc="2.0",
@@ -71,7 +71,7 @@ async def mock_server():
7171
)
7272
)
7373
jsonrpc_notification = await client_to_server_receive.receive()
74-
assert isinstance(jsonrpc_notification.root, ParsedMessage)
74+
assert isinstance(jsonrpc_notification.root, MessageFrame)
7575
initialized_notification = ClientNotification.model_validate(
7676
jsonrpc_notification.root.model_dump(
7777
by_alias=True, mode="json", exclude_none=True

tests/server/test_session.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from mcp.server.lowlevel import NotificationOptions
77
from mcp.server.models import InitializationOptions
88
from mcp.server.session import ServerSession
9-
from mcp.shared.session import ParsedMessage
9+
from mcp.shared.session import MessageFrame
1010
from mcp.types import (
1111
ClientNotification,
1212
InitializedNotification,
@@ -19,10 +19,10 @@
1919
@pytest.mark.anyio
2020
async def test_server_session_initialize():
2121
server_to_client_send, server_to_client_receive = anyio.create_memory_object_stream[
22-
ParsedMessage[None]
22+
MessageFrame[None]
2323
](1)
2424
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[
25-
ParsedMessage[None]
25+
MessageFrame[None]
2626
](1)
2727

2828
async def run_client(client: ClientSession):

tests/server/test_stdio.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import pytest
55

66
from mcp.server.stdio import stdio_server
7-
from mcp.shared.session import ParsedMessage
7+
from mcp.shared.session import MessageFrame
88
from mcp.types import JSONRPCMessage, JSONRPCRequest, JSONRPCResponse
99

1010

@@ -14,10 +14,10 @@ async def test_stdio_server():
1414
stdout = io.StringIO()
1515

1616
messages = [
17-
ParsedMessage(
17+
MessageFrame(
1818
root=JSONRPCMessage(root=JSONRPCRequest(jsonrpc="2.0", id=1, method="ping"))
1919
),
20-
ParsedMessage(
20+
MessageFrame(
2121
root=JSONRPCMessage(root=JSONRPCResponse(jsonrpc="2.0", id=2, result={}))
2222
),
2323
]
@@ -40,21 +40,21 @@ async def test_stdio_server():
4040

4141
# Verify received messages
4242
assert len(received_messages) == 2
43-
assert received_messages[0] == ParsedMessage(
43+
assert received_messages[0] == MessageFrame(
4444
root=JSONRPCMessage(root=JSONRPCRequest(jsonrpc="2.0", id=1, method="ping"))
4545
)
46-
assert received_messages[1] == ParsedMessage(
46+
assert received_messages[1] == MessageFrame(
4747
root=JSONRPCMessage(root=JSONRPCResponse(jsonrpc="2.0", id=2, result={}))
4848
)
4949

5050
# Test sending responses from the server
5151
responses = [
52-
ParsedMessage(
52+
MessageFrame(
5353
root=JSONRPCMessage(
5454
root=JSONRPCRequest(jsonrpc="2.0", id=3, method="ping")
5555
)
5656
),
57-
ParsedMessage(
57+
MessageFrame(
5858
root=JSONRPCMessage(
5959
root=JSONRPCResponse(jsonrpc="2.0", id=4, result={})
6060
)
@@ -70,12 +70,12 @@ async def test_stdio_server():
7070
assert len(output_lines) == 2
7171

7272
received_responses = [
73-
ParsedMessage.model_validate_json(line.strip()) for line in output_lines
73+
MessageFrame.model_validate_json(line.strip()) for line in output_lines
7474
]
7575
assert len(received_responses) == 2
76-
assert received_responses[0] == ParsedMessage(
76+
assert received_responses[0] == MessageFrame(
7777
root=JSONRPCMessage(root=JSONRPCRequest(jsonrpc="2.0", id=3, method="ping"))
7878
)
79-
assert received_responses[1] == ParsedMessage(
79+
assert received_responses[1] == MessageFrame(
8080
root=JSONRPCMessage(root=JSONRPCResponse(jsonrpc="2.0", id=4, result={}))
8181
)

0 commit comments

Comments
 (0)