|
19 | 19 | from mcp.client.session import ClientSession |
20 | 20 | from mcp.server import Server |
21 | 21 | from mcp.server.experimental.task_context import ServerTaskContext |
| 22 | +from mcp.server.session import ServerSession |
22 | 23 | from mcp.server.lowlevel import NotificationOptions |
23 | 24 | from mcp.shared.context import RequestContext |
24 | 25 | from mcp.shared.experimental.tasks.helpers import is_terminal |
@@ -283,8 +284,11 @@ async def list_tools() -> list[Tool]: |
283 | 284 | async def handle_call_tool(name: str, arguments: dict[str, Any]) -> CallToolResult: |
284 | 285 | ctx = server.request_context |
285 | 286 |
|
| 287 | + session = ctx.session |
| 288 | + assert isinstance(session, ServerSession) |
| 289 | + |
286 | 290 | # Task-augmented elicitation - server polls client |
287 | | - result = await ctx.session.experimental.elicit_as_task( |
| 291 | + result = await session.experimental.elicit_as_task( |
288 | 292 | message="Please confirm the action", |
289 | 293 | requested_schema={"type": "object", "properties": {"confirm": {"type": "boolean"}}}, |
290 | 294 | ttl=60000, |
@@ -574,8 +578,11 @@ async def list_tools() -> list[Tool]: |
574 | 578 | async def handle_call_tool(name: str, arguments: dict[str, Any]) -> CallToolResult: |
575 | 579 | ctx = server.request_context |
576 | 580 |
|
| 581 | + session = ctx.session |
| 582 | + assert isinstance(session, ServerSession) |
| 583 | + |
577 | 584 | # Task-augmented sampling - server polls client |
578 | | - result = await ctx.session.experimental.create_message_as_task( |
| 585 | + result = await session.experimental.create_message_as_task( |
579 | 586 | messages=[SamplingMessage(role="user", content=TextContent(type="text", text="Hello"))], |
580 | 587 | max_tokens=100, |
581 | 588 | ttl=60000, |
|
0 commit comments