Skip to content

Commit 368782c

Browse files
add request handler
1 parent cce8519 commit 368782c

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/mcp/client/session.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pydantic import AnyUrl
77

88
import mcp.types as types
9-
from mcp.shared.session import BaseSession
9+
from mcp.shared.session import BaseSession, RequestResponder
1010
from mcp.shared.version import SUPPORTED_PROTOCOL_VERSIONS
1111

1212
sampling_function_signature = Callable[
@@ -255,3 +255,17 @@ async def send_roots_list_changed(self) -> None:
255255
)
256256
)
257257
)
258+
259+
async def _received_request(
260+
self, responder: RequestResponder["types.ServerRequest", "types.ClientResult"]
261+
) -> None:
262+
if isinstance(responder.request.root, types.CreateMessageRequest):
263+
print("Received create message request")
264+
if self.sampling_callback is None:
265+
raise RuntimeError("Sampling callback is not set")
266+
response = await self.sampling_callback(responder.request.root.params)
267+
268+
client_response = types.ClientResult(**response.model_dump())
269+
270+
print(f"Response: {response.dict()}")
271+
await responder.respond(client_response)

0 commit comments

Comments
 (0)