2.0.0
Use this when you need to execute server-side functions and process their results.
Tools are executable functions exposed by MCP servers. The client’s call_tool() method executes a tool by name with arguments and returns structured results.
Basic Execution
weather_get_forecast for a tool named get_forecast on the weather server).
Execution Options
Thecall_tool() method supports timeout control and progress monitoring:
Structured Results
New in version2.10.0
Tool execution returns a CallToolResult object. The .data property provides fully hydrated Python objects including complex types like datetimes and UUIDs, reconstructed from the server’s output schema.
CallToolResult Properties
Fully hydrated Python objects with complex type support (datetimes, UUIDs, custom classes). FastMCP exclusive.
Standard MCP content blocks (
TextContent, ImageContent, AudioContent, etc.).Standard MCP structured JSON data as sent by the server.
Boolean indicating if the tool execution failed.
.data will be None. Fall back to content blocks in that case:
Error Handling
By default,call_tool() raises a ToolError if the tool execution fails:
Sending Metadata
New in version2.13.1
The meta parameter sends ancillary information alongside tool calls for observability, debugging, or client identification:
Raw Protocol Access
For complete control, usecall_tool_mcp() which returns the raw MCP protocol object:

