MCPcopy Index your code
hub / github.com/modelcontextprotocol/python-sdk / call_tool

Function call_tool

tests/interaction/lowlevel/test_sampling.py:51–58  ·  view source on GitHub ↗
(ctx: ServerRequestContext, params: types.CallToolRequestParams)

Source from the content-addressed store, hash-verified

49 return types.ListToolsResult(tools=[types.Tool(name="ask_model", input_schema={"type": "object"})])
50
51 async def call_tool(ctx: ServerRequestContext, params: types.CallToolRequestParams) -> CallToolResult:
52 assert params.name == "ask_model"
53 result = await ctx.session.create_message( # pyright: ignore[reportDeprecated]
54 messages=[SamplingMessage(role="user", content=TextContent(text="Say hello."))],
55 max_tokens=100,
56 )
57 assert isinstance(result.content, TextContent)
58 return CallToolResult(content=[TextContent(text=f"{result.model}/{result.stop_reason}: {result.content.text}")])
59
60 server = Server("sampler", on_list_tools=list_tools, on_call_tool=call_tool)
61

Callers

nothing calls this directly

Calls 10

SamplingMessageClass · 0.90
TextContentClass · 0.90
CallToolResultClass · 0.90
ModelPreferencesClass · 0.90
ModelHintClass · 0.90
ImageContentClass · 0.90
ToolResultContentClass · 0.90
AudioContentClass · 0.90
ToolUseContentClass · 0.90
create_messageMethod · 0.80

Tested by

no test coverage detected