Skip to content

Commit d0705df

Browse files
committed
add agnostic message type
1 parent 26b47e8 commit d0705df

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

src/mcp/client/base_client_session.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
class BaseClientSession(
1212
CommonBaseSession[
13+
Any,
1314
types.ClientRequest,
1415
types.ClientNotification,
1516
types.ClientResult,

src/mcp/shared/_context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from mcp.shared.session import CommonBaseSession
99
from mcp.types import RequestId, RequestParamsMeta
1010

11-
SessionT_co = TypeVar("SessionT_co", bound=CommonBaseSession[Any, Any, Any, Any, Any], covariant=True)
11+
SessionT_co = TypeVar("SessionT_co", bound=CommonBaseSession[Any, Any, Any, Any, Any, Any], covariant=True)
1212

1313

1414
@dataclass(kw_only=True)

src/mcp/shared/message.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from collections.abc import Awaitable, Callable
88
from dataclasses import dataclass
9+
from typing import TypeVar
910

1011
from mcp.types import JSONRPCMessage, RequestId
1112

@@ -40,6 +41,8 @@ class ServerMessageMetadata:
4041

4142
MessageMetadata = ClientMessageMetadata | ServerMessageMetadata | None
4243

44+
WireMessageT = TypeVar("WireMessageT")
45+
4346

4447
@dataclass
4548
class SessionMessage:

src/mcp/shared/session.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from typing_extensions import Self
1414

1515
from mcp.shared.exceptions import MCPError
16-
from mcp.shared.message import MessageMetadata, ServerMessageMetadata, SessionMessage
16+
from mcp.shared.message import MessageMetadata, ServerMessageMetadata, SessionMessage, WireMessageT
1717
from mcp.shared.response_router import ResponseRouter
1818
from mcp.types import (
1919
CONNECTION_CLOSED,
@@ -158,6 +158,7 @@ def cancelled(self) -> bool:
158158
class CommonBaseSession(
159159
ABC,
160160
Generic[
161+
WireMessageT,
161162
SendRequestT,
162163
SendNotificationT,
163164
SendResultT,
@@ -176,8 +177,8 @@ class CommonBaseSession(
176177

177178
def __init__(
178179
self,
179-
read_stream: MemoryObjectReceiveStream[SessionMessage | Exception] | None = None,
180-
write_stream: MemoryObjectSendStream[SessionMessage] | None = None,
180+
read_stream: MemoryObjectReceiveStream[WireMessageT | Exception] | None = None,
181+
write_stream: MemoryObjectSendStream[WireMessageT] | None = None,
181182
# If none, reading will never time out
182183
read_timeout_seconds: float | None = None,
183184
) -> None:
@@ -228,6 +229,7 @@ async def send_progress_notification(
228229

229230
class BaseSession(
230231
CommonBaseSession[
232+
SessionMessage,
231233
SendRequestT,
232234
SendNotificationT,
233235
SendResultT,

0 commit comments

Comments
 (0)