60e0ffc959
Upgrade checks / Notify on failure (push) Has been cancelled
Upgrade checks / Close issue on success (push) Has been cancelled
Schema Crash Test / Real-world schema crash test (232K schemas) (push) Has been cancelled
Run static analysis / static_analysis (push) Has been cancelled
Tests / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Tests / Tests with lowest-direct dependencies (push) Has been cancelled
Tests / MCP conformance tests (push) Has been cancelled
Tests / Integration tests (push) Has been cancelled
Tests / Package install smoke (push) Has been cancelled
Upgrade checks / Static analysis (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Upgrade checks / Integration tests (push) Has been cancelled
Update MCPServerConfig Schema / update-config-schema (push) Has been cancelled
Update SDK Documentation / update-sdk-docs (push) Has been cancelled
189 lines
6.6 KiB
Plaintext
189 lines
6.6 KiB
Plaintext
---
|
|
title: mcp_config
|
|
sidebarTitle: mcp_config
|
|
---
|
|
|
|
# `fastmcp.mcp_config`
|
|
|
|
|
|
Canonical MCP Configuration Format.
|
|
|
|
This module defines the standard configuration format for Model Context Protocol (MCP) servers.
|
|
It provides a client-agnostic, extensible format that can be used across all MCP implementations.
|
|
|
|
The configuration format supports both stdio and remote (HTTP/SSE) transports, with comprehensive
|
|
field definitions for server metadata, authentication, and execution parameters.
|
|
|
|
Example configuration:
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"my-server": {
|
|
"command": "npx",
|
|
"args": ["-y", "@my/mcp-server"],
|
|
"env": {"API_KEY": "secret"},
|
|
"timeout": 30000,
|
|
"description": "My MCP server"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
|
|
## Functions
|
|
|
|
### `infer_transport_type_from_url` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L54" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
infer_transport_type_from_url(url: str | AnyUrl) -> Literal['http', 'sse']
|
|
```
|
|
|
|
|
|
Infer the appropriate transport type from the given URL.
|
|
|
|
|
|
### `update_config_file` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L363" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
update_config_file(file_path: Path, server_name: str, server_config: CanonicalMCPServerTypes) -> None
|
|
```
|
|
|
|
|
|
Update an MCP configuration file from a server object, preserving existing fields.
|
|
|
|
This is used for updating the mcpServer configurations of third-party tools so we do not
|
|
worry about transforming server objects here.
|
|
|
|
|
|
## Classes
|
|
|
|
### `StdioMCPServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L168" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
MCP server configuration for stdio transport.
|
|
|
|
This is the canonical configuration format for MCP servers using stdio transport.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `to_transport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L201" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
to_transport(self) -> StdioTransport
|
|
```
|
|
|
|
### `TransformingStdioMCPServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L213" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
A Stdio server with tool transforms.
|
|
|
|
|
|
### `RemoteMCPServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L217" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
MCP server configuration for HTTP/SSE transport.
|
|
|
|
This is the canonical configuration format for MCP servers using remote transports.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `to_transport` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L253" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
to_transport(self) -> StreamableHttpTransport | SSETransport
|
|
```
|
|
|
|
### `TransformingRemoteMCPServer` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L281" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
A Remote server with tool transforms.
|
|
|
|
|
|
### `MCPConfig` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L292" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
A configuration object for MCP Servers that conforms to the canonical MCP configuration format
|
|
while adding additional fields for enabling FastMCP-specific features like tool transformations
|
|
and filtering by tags.
|
|
|
|
For an MCPConfig that is strictly canonical, see the `CanonicalMCPConfig` class.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `wrap_servers_at_root` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L306" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
wrap_servers_at_root(cls, values: dict[str, Any]) -> dict[str, Any]
|
|
```
|
|
|
|
If there's no mcpServers key but there are server configs at root, wrap them.
|
|
|
|
|
|
#### `add_server` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L319" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
add_server(self, name: str, server: MCPServerTypes) -> None
|
|
```
|
|
|
|
Add or update a server in the configuration.
|
|
|
|
|
|
#### `from_dict` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L324" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
from_dict(cls, config: dict[str, Any]) -> Self
|
|
```
|
|
|
|
Parse MCP configuration from dictionary format.
|
|
|
|
|
|
#### `to_dict` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L328" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
to_dict(self) -> dict[str, Any]
|
|
```
|
|
|
|
Convert MCPConfig to dictionary format, preserving all fields.
|
|
|
|
|
|
#### `write_to_file` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L332" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
write_to_file(self, file_path: Path) -> None
|
|
```
|
|
|
|
Write configuration to JSON file.
|
|
|
|
|
|
#### `from_file` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L338" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
from_file(cls, file_path: Path) -> Self
|
|
```
|
|
|
|
Load configuration from JSON file.
|
|
|
|
|
|
### `CanonicalMCPConfig` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L348" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
Canonical MCP configuration format.
|
|
|
|
This defines the standard configuration format for Model Context Protocol servers.
|
|
The format is designed to be client-agnostic and extensible for future use cases.
|
|
|
|
|
|
**Methods:**
|
|
|
|
#### `add_server` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/mcp_config.py#L358" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
```python
|
|
add_server(self, name: str, server: CanonicalMCPServerTypes) -> None
|
|
```
|
|
|
|
Add or update a server in the configuration.
|
|
|