You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`CustomServerConfig` is a flexible server configuration type in MCPM that allows for arbitrary, non-standard server configurations. It's designed to support future extensibility and edge cases that don't fit into the standard STDIO or Remote server models.
6
+
7
+
## Structure
8
+
9
+
```python
10
+
classCustomServerConfig(BaseServerConfig):
11
+
config: Dict[str, Any]
12
+
```
13
+
14
+
- Inherits from `BaseServerConfig` (provides `name` and `profile_tags`)
15
+
- Has a single `config` field that can contain any dictionary structure
16
+
17
+
## Purpose and Use Cases
18
+
19
+
### 1. **Future-Proofing**
20
+
CustomServerConfig allows MCPM to support new server types without changing the core schema. For example:
21
+
- WebSocket-based MCP servers
22
+
- Custom transport protocols
23
+
- Proprietary server implementations
24
+
25
+
### 2. **Client-Specific Configurations**
26
+
Different MCP clients might have unique configuration requirements:
27
+
```python
28
+
# Example: A hypothetical WebSocket server
29
+
CustomServerConfig(
30
+
name="websocket-server",
31
+
config={
32
+
"url": "wss://example.com/mcp",
33
+
"transport": "websocket",
34
+
"reconnect": True,
35
+
"ping_interval": 30
36
+
}
37
+
)
38
+
```
39
+
40
+
### 3. **Built-in or Special Servers**
41
+
In the Goose client integration, CustomServerConfig is used for "builtin" type servers:
The key insight is that CustomServerConfig is MCPM's escape hatch for innovation - it ensures the tool can adapt to new MCP server types without requiring schema changes.
The MCPM FastMCP proxy now supports aggregating servers with different transport types (stdio, HTTP, SSE) into a single unified interface.
4
+
5
+
## Supported Server Types
6
+
7
+
### 1. STDIO Servers (Local Command-based)
8
+
```yaml
9
+
name: local-python-server
10
+
command: python
11
+
args: ["-m", "my_mcp_server"]
12
+
env:
13
+
API_KEY: ${MY_API_KEY}
14
+
```
15
+
16
+
### 2. Remote HTTP/SSE Servers
17
+
```yaml
18
+
name: remote-api-server
19
+
url: https://api.example.com/mcp
20
+
headers:
21
+
Authorization: Bearer ${TOKEN}
22
+
```
23
+
24
+
### 3. Custom Server Configurations (Client-Specific)
25
+
```yaml
26
+
name: custom-websocket-server
27
+
config:
28
+
url: wss://ws.example.com/mcp
29
+
transport: websocket
30
+
custom_field: value
31
+
```
32
+
33
+
**Note**: CustomServerConfig is used for parsing non-standard MCP configs from client configuration files (like Claude Desktop, Goose, etc.) and is **not processed by MCPM's proxy system**. These are client-specific configurations that don't go through the proxy.
34
+
35
+
## Example: Mixed Profile
36
+
37
+
You can create a profile that combines servers with different transports:
0 commit comments