mcp.json (Dynamic MCP Server Loading)
The mcp.json
file configures the target MCP servers that MCPX will launch and manage dynamically. MCPX reads this file at startup to determine which MCP servers to load within its process. By default, it's located at config/mcp.json
within the mcpx-server
directory, but this path can be overridden using the SERVERS_CONFIG_PATH
environment variable.
You can configure multiple MCP servers in a single file, such as time, Google Maps, or Slack, so MCPX can orchestrate them seamlessly.
Parametersβ
mcpServersβ
required: true
description: A top-level object containing named MCP server entries.
nameβ
required: true
description: The unique identifier or display name for the MCP server. This helps distinguish it from others when listed in the MCPX UI.
commandβ
required: true
description: Specifies the CLI or executable to start the MCP server (e.g., uvx
, npx
).
argsβ
required: true
description: An array of strings passed as arguments to the command.
envβ
required: false
description: A map of environment variables scoped to that MCP server process.
Exampleβ
{
"mcpServers": {
"google-maps": {
"args": [
"-y",
"@modelcontextprotocol/server-google-maps"
],
"command": "npx",
"env": {},
"icon": "πΊοΈ"
},
"memory": {
"args": [
"-y",
"@modelcontextprotocol/server-memory"
],
"command": "npx",
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.json"
},
"icon": "π"
},
"slack": {
"args": [
"-y",
"@modelcontextprotocol/server-slack"
],
"command": "npx",
"env": {
"SLACK_TEAM_ID": "<your-slack-team-id>",
"SLACK_CHANNEL_IDS": "<relevant-slack-channel-ids>"
},
"icon": "π¬"
},
"time": {
"args": [
"mcp_server_time",
"--local-timezone=America/New_York"
],
"command": "uvx",
"env": {},
"icon": "β°"
}
}
}