refactor: split RequestContext between server and client (#1987)
This commit is contained in:
parent
050aeb6456
commit
b1f7eec3cd
3 changed files with 210 additions and 212 deletions
|
|
@ -5,7 +5,6 @@ from mcp import Client
|
|||
from mcp.client.session import ClientSession
|
||||
from mcp.server.mcpserver import MCPServer
|
||||
from mcp.server.mcpserver.server import Context
|
||||
from mcp.server.session import ServerSession
|
||||
from mcp.shared.context import RequestContext
|
||||
from mcp.types import ListRootsResult, Root, TextContent
|
||||
|
||||
|
|
@ -16,24 +15,18 @@ async def test_list_roots_callback():
|
|||
|
||||
callback_return = ListRootsResult(
|
||||
roots=[
|
||||
Root(
|
||||
uri=FileUrl("file://users/fake/test"),
|
||||
name="Test Root 1",
|
||||
),
|
||||
Root(
|
||||
uri=FileUrl("file://users/fake/test/2"),
|
||||
name="Test Root 2",
|
||||
),
|
||||
Root(uri=FileUrl("file://users/fake/test"), name="Test Root 1"),
|
||||
Root(uri=FileUrl("file://users/fake/test/2"), name="Test Root 2"),
|
||||
]
|
||||
)
|
||||
|
||||
async def list_roots_callback(
|
||||
context: RequestContext[ClientSession, None],
|
||||
context: RequestContext[ClientSession],
|
||||
) -> ListRootsResult:
|
||||
return callback_return
|
||||
|
||||
@server.tool("test_list_roots")
|
||||
async def test_list_roots(context: Context[ServerSession, None], message: str):
|
||||
async def test_list_roots(context: Context[None], message: str):
|
||||
roots = await context.session.list_roots()
|
||||
assert roots == callback_return
|
||||
return True
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ async def test_sampling_callback():
|
|||
)
|
||||
|
||||
async def sampling_callback(
|
||||
context: RequestContext[ClientSession, None],
|
||||
context: RequestContext[ClientSession],
|
||||
params: CreateMessageRequestParams,
|
||||
) -> CreateMessageResult:
|
||||
return callback_return
|
||||
|
|
@ -71,7 +71,7 @@ async def test_create_message_backwards_compat_single_content():
|
|||
)
|
||||
|
||||
async def sampling_callback(
|
||||
context: RequestContext[ClientSession, None],
|
||||
context: RequestContext[ClientSession],
|
||||
params: CreateMessageRequestParams,
|
||||
) -> CreateMessageResult:
|
||||
return callback_return
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from typing import Any
|
||||
from __future__ import annotations
|
||||
|
||||
import anyio
|
||||
import pytest
|
||||
|
|
@ -390,7 +390,7 @@ async def test_client_capabilities_with_custom_callbacks():
|
|||
received_capabilities = None
|
||||
|
||||
async def custom_sampling_callback( # pragma: no cover
|
||||
context: RequestContext["ClientSession", Any],
|
||||
context: RequestContext[ClientSession],
|
||||
params: types.CreateMessageRequestParams,
|
||||
) -> types.CreateMessageResult | types.ErrorData:
|
||||
return types.CreateMessageResult(
|
||||
|
|
@ -400,7 +400,7 @@ async def test_client_capabilities_with_custom_callbacks():
|
|||
)
|
||||
|
||||
async def custom_list_roots_callback( # pragma: no cover
|
||||
context: RequestContext["ClientSession", Any],
|
||||
context: RequestContext[ClientSession],
|
||||
) -> types.ListRootsResult | types.ErrorData:
|
||||
return types.ListRootsResult(roots=[])
|
||||
|
||||
|
|
@ -474,7 +474,7 @@ async def test_client_capabilities_with_sampling_tools():
|
|||
received_capabilities = None
|
||||
|
||||
async def custom_sampling_callback( # pragma: no cover
|
||||
context: RequestContext["ClientSession", Any],
|
||||
context: RequestContext[ClientSession],
|
||||
params: types.CreateMessageRequestParams,
|
||||
) -> types.CreateMessageResult | types.ErrorData:
|
||||
return types.CreateMessageResult(
|
||||
|
|
|
|||
Loading…
Reference in a new issue