21 lines
695 B
Python
21 lines
695 B
Python
"""Transport protocol for MCP clients."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from contextlib import AbstractAsyncContextManager
|
|
from typing import Protocol
|
|
|
|
from mcp.shared._stream_protocols import ReadStream, WriteStream
|
|
from mcp.shared.message import SessionMessage
|
|
|
|
__all__ = ["ReadStream", "WriteStream", "Transport", "TransportStreams"]
|
|
|
|
TransportStreams = tuple[ReadStream[SessionMessage | Exception], WriteStream[SessionMessage]]
|
|
|
|
|
|
class Transport(AbstractAsyncContextManager[TransportStreams], Protocol):
|
|
"""Protocol for MCP transports.
|
|
|
|
A transport is an async context manager that yields read and write streams
|
|
for bidirectional communication with an MCP server.
|
|
"""
|