mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-15 01:59:10 +02:00
94 lines
3 KiB
Text
94 lines
3 KiB
Text
---
|
|
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.
|
|
|