feat: add ClientRequestContext type alias for client-side handlers (#1989)

This commit is contained in:
Marcelo Trylesinski 2026-02-03 17:37:38 +01:00 • committed by GitHub
commit 4fc49c62bd
3 changed files with 55 additions and 37 deletions

View file

@ -10,8 +10,8 @@ import asyncio
import click
from mcp import ClientSession
from mcp.client.context import ClientRequestContext
from mcp.client.streamable_http import streamable_http_client
from mcp.shared.context import RequestContext
from mcp.types import (
CallToolResult,
CreateMessageRequestParams,
@ -23,7 +23,7 @@ from mcp.types import (
async def elicitation_callback(
context: RequestContext[ClientSession],
context: ClientRequestContext,
params: ElicitRequestParams,
) -> ElicitResult:
"""Handle elicitation requests from the server."""
@ -38,7 +38,7 @@ async def elicitation_callback(
async def sampling_callback(
context: RequestContext[ClientSession],
context: ClientRequestContext,
params: CreateMessageRequestParams,
) -> CreateMessageResult:
"""Handle sampling requests from the server."""

View file

@ -6,8 +6,8 @@ import asyncio
import os
from mcp import ClientSession, StdioServerParameters, types
from mcp.client.context import ClientRequestContext
from mcp.client.stdio import stdio_client
from mcp.shared.context import RequestContext
# Create server parameters for stdio connection
server_params = StdioServerParameters(
@ -19,7 +19,7 @@ server_params = StdioServerParameters(
# Optional: create a sampling callback
async def handle_sampling_message(
context: RequestContext[ClientSession], params: types.CreateMessageRequestParams
context: ClientRequestContext, params: types.CreateMessageRequestParams
) -> types.CreateMessageResult:
print(f"Sampling request: {params.messages}")
return types.CreateMessageResult(

View file

@ -31,14 +31,14 @@ from typing import Any
from urllib.parse import urlparse
from mcp import ClientSession, types
from mcp.client.context import ClientRequestContext
from mcp.client.sse import sse_client
from mcp.shared.context import RequestContext
from mcp.shared.exceptions import MCPError, UrlElicitationRequiredError
from mcp.types import URL_ELICITATION_REQUIRED
async def handle_elicitation(
context: RequestContext[ClientSession],
context: ClientRequestContext,
params: types.ElicitRequestParams,
) -> types.ElicitResult | types.ErrorData:
"""Handle elicitation requests from the server.