Dynamic MCP Server Loading
MCPX loads a configuration file listing desired target MCP servers at config/mcp.json
(overridable by the SERVERS_CONFIG_PATH
environment variable).
This configuration follows the existing convention used by Claude Desktop - as seen here. Since Claude Desktop currently only supports stdio transports, we recommend an adapter such as mcp-remote to connect it to MCPX.
In this example, google-maps
, slack
, and linear
are names of your choice, while the command
and args
fields under them tells MCPX how to spin up the desired MCP clients. The target MCP servers will run within the process of MCPX.
{
"mcpServers": {
"google-maps": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-google-maps"]
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_TEAM_ID": "<your-slack-team-id>",
"SLACK_CHANNEL_IDS": "<relevant-slack-channel-ids>"
}
},
"linear": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"]
}
}
}
note
Currently, JavaScript (Node.js), Python, and Docker-based MCP servers are supported. Broader support will be added as this project evolves.