Skip to main content
Version: Next

Servers Aggregation

Tool Groups

In order to define tool groups, the top-level toolGroups field is used. It expect an array of objects, each containing a name (string) and services, which is a map of MCP server names (corresponding to those that were defined in config/mcp.json). Per service, you can either refer to all the its tools by passing an asterisk (the literal string "*"), or to specific tools within this service, by listing their names in an array of strings.

Target MCP Servers

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.

In this example, google-maps and slack 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>"
}
}
}
}
note

Currently, NodeJS and Python target servers are supported. Broader support will be added as this project evolves.