Skip to content

Commit dacd294

Browse files
committed
return type for streamablehttp_client
1 parent e73677a commit dacd294

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

src/mcp/client/streamable_http.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"""
88

99
import logging
10-
from collections.abc import Awaitable, Callable
10+
from collections.abc import AsyncGenerator, Awaitable, Callable
1111
from contextlib import asynccontextmanager
1212
from dataclasses import dataclass
1313
from datetime import timedelta
@@ -35,7 +35,8 @@
3535
SessionMessageOrError = SessionMessage | Exception
3636
StreamWriter = MemoryObjectSendStream[SessionMessageOrError]
3737
StreamReader = MemoryObjectReceiveStream[SessionMessage]
38-
38+
TerminateCallback = Callable[[], Awaitable[None]]
39+
GetSessionIdCallback = Callable[[], str | None]
3940

4041
MCP_SESSION_ID = "mcp-session-id"
4142
LAST_EVENT_ID = "last-event-id"
@@ -412,16 +413,27 @@ async def streamablehttp_client(
412413
headers: dict[str, Any] | None = None,
413414
timeout: timedelta = timedelta(seconds=30),
414415
sse_read_timeout: timedelta = timedelta(seconds=60 * 5),
415-
):
416+
) -> AsyncGenerator[
417+
tuple[
418+
MemoryObjectReceiveStream[SessionMessage | Exception],
419+
MemoryObjectSendStream[SessionMessage],
420+
TerminateCallback,
421+
GetSessionIdCallback,
422+
],
423+
None,
424+
]:
416425
"""
417426
Client transport for StreamableHTTP.
418427
419428
`sse_read_timeout` determines how long (in seconds) the client will wait for a new
420429
event before disconnecting. All other HTTP operations are controlled by `timeout`.
421430
422431
Yields:
423-
Tuple of (read_stream, write_stream, terminate_callback,
424-
get_session_id_callback)
432+
Tuple containing:
433+
- read_stream: Stream for reading messages from the server
434+
- write_stream: Stream for sending messages to the server
435+
- terminate_callback: Async function to terminate the session - send DELETE
436+
- get_session_id_callback: Function to retrieve the current session ID
425437
"""
426438
transport = StreamableHTTPTransport(url, headers, timeout, sse_read_timeout)
427439

tests/shared/test_streamable_http.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@
4040
from mcp.shared.exceptions import McpError
4141
from mcp.shared.message import (
4242
ClientMessageMetadata,
43-
ResumptionToken,
44-
ResumptionTokenUpdateCallback,
45-
SessionMessage,
4643
)
4744
from mcp.shared.session import RequestResponder
4845
from mcp.types import (

0 commit comments

Comments
 (0)