Spaces:
Running
Running
| --- | |
| title: client | |
| sidebarTitle: client | |
| --- | |
| # `fastmcp.client.client` | |
| ## Classes | |
| ### `Client` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L60"><Icon icon="github" size="14" /></a></sup> | |
| MCP client that delegates connection management to a Transport instance. | |
| The Client class is responsible for MCP protocol logic, while the Transport | |
| handles connection establishment and management. Client provides methods for | |
| working with resources, prompts, tools and other MCP capabilities. | |
| **Args:** | |
| - `transport`: Connection source specification, which can be\: | |
| - ClientTransport\: Direct transport instance | |
| - FastMCP\: In-process FastMCP server | |
| - AnyUrl | str\: URL to connect to | |
| - Path\: File path for local socket | |
| - MCPConfig\: MCP server configuration | |
| - dict\: Transport configuration | |
| - `roots`: Optional RootsList or RootsHandler for filesystem access | |
| - `sampling_handler`: Optional handler for sampling requests | |
| - `log_handler`: Optional handler for log messages | |
| - `message_handler`: Optional handler for protocol messages | |
| - `progress_handler`: Optional handler for progress notifications | |
| - `timeout`: Optional timeout for requests (seconds or timedelta) | |
| - `init_timeout`: Optional timeout for initial connection (seconds or timedelta). | |
| Set to 0 to disable. If None, uses the value in the FastMCP global settings. | |
| **Examples:** | |
| ```python # Connect to FastMCP server client = | |
| Client("http://localhost:8080") | |
| async with client: | |
| # List available resources resources = await client.list_resources() | |
| # Call a tool result = await client.call_tool("my_tool", {"param": | |
| "value"}) | |
| ``` | |
| **Methods:** | |
| #### `session` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L207"><Icon icon="github" size="14" /></a></sup> | |
| ```python | |
| session(self) -> ClientSession | |
| ``` | |
| Get the current active session. Raises RuntimeError if not connected. | |
| #### `initialize_result` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L217"><Icon icon="github" size="14" /></a></sup> | |
| ```python | |
| initialize_result(self) -> mcp.types.InitializeResult | |
| ``` | |
| Get the result of the initialization request. | |
| #### `set_roots` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L225"><Icon icon="github" size="14" /></a></sup> | |
| ```python | |
| set_roots(self, roots: RootsList | RootsHandler) -> None | |
| ``` | |
| Set the roots for the client. This does not automatically call `send_roots_list_changed`. | |
| #### `set_sampling_callback` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L229"><Icon icon="github" size="14" /></a></sup> | |
| ```python | |
| set_sampling_callback(self, sampling_callback: SamplingHandler) -> None | |
| ``` | |
| Set the sampling callback for the client. | |
| #### `is_connected` <sup><a href="https://github.com/jlowin/fastmcp/blob/main/src/fastmcp/client/client.py#L235"><Icon icon="github" size="14" /></a></sup> | |
| ```python | |
| is_connected(self) -> bool | |
| ``` | |
| Check if the client is currently connected. | |