Client-side 2026-07-28 support: .discover()/.adopt() + Client(mode=); request-metadata green (#2950)
This commit is contained in:
parent
ae13ede143
commit
f226d00d0a
1 changed files with 2533 additions and 993 deletions
|
|
@ -21,7 +21,16 @@ from mcp.types import LATEST_PROTOCOL_VERSION
|
|||
|
||||
|
||||
class StubOutbound:
|
||||
"""Records `send_raw_request` / `notify` calls and returns a canned result."""
|
||||
"""Records `send_raw_request` / `notify` calls and returns a canned result.
|
||||
|
||||
Structurally a `DispatchContext[Any]` so it can stand in for the per-request channel.
|
||||
"""
|
||||
|
||||
transport: Any = None
|
||||
can_send_request: bool = True
|
||||
request_id: Any = None
|
||||
message_metadata: Any = None
|
||||
cancel_requested: Any = None
|
||||
|
||||
def __init__(self, result: dict[str, Any] | None = None) -> None:
|
||||
self.requests: list[tuple[str, Mapping[str, Any] | None, CallOptions | None]] = []
|
||||
|
|
@ -37,9 +46,12 @@ class StubOutbound:
|
|||
self.requests.append((method, params, opts))
|
||||
return self.result
|
||||
|
||||
async def notify(self, method: str, params: Mapping[str, Any] | None) -> None:
|
||||
async def notify(self, method: str, params: Mapping[str, Any] | None, opts: CallOptions | None = None) -> None:
|
||||
self.notifications.append((method, params))
|
||||
|
||||
async def progress(self, progress: float, total: float | None = None, message: str | None = None) -> None:
|
||||
raise NotImplementedError # pragma: no cover
|
||||
|
||||
|
||||
def _no_channel_session(request_ch: StubOutbound | None = None) -> tuple[ServerSession, StubOutbound]:
|
||||
"""A session whose standalone channel is the connection's no-channel
|
||||
|
|
|
|||
Loading…
Reference in a new issue