An MCP proxy server that aggregates and serves multiple MCP resource servers through a single interface. This server acts as a central hub that can:
The server requires a JSON configuration file that specifies the MCP servers to connect to. Copy the example config and modify it for your needs:
cp config.example.json config.json
Example config structure:
{
"servers": [
{
"name": "Server 1",
"transport": {
"command": "/path/to/server1/build/index.js"
}
},
{
"name": "Server 2",
"transport": {
"command": "server2-command",
"args": ["--option1", "value1"]
}
}
]
}
The config file must be provided when running the server:
MCP_CONFIG_PATH=./config.json mcp-proxy-server
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-proxy": {
"command": "/path/to/mcp-proxy-server/build/index.js",
"env": {
"MCP_CONFIG_PATH": "/absolute/path/to/your/config.json"
}
}
}
}
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.
{
"mcpServers": {
"server1": {
"env": {},
"args": [
"/path/to/server1/build/index.js"
],
"command": "node"
},
"server2": {
"env": {},
"args": [
"--option1",
"value1"
],
"command": "server2-command"
},
"mcp-proxy": {
"env": {
"MCP_CONFIG_PATH": "/absolute/path/to/your/config.json"
},
"args": [
"/path/to/mcp-proxy-server/build/index.js"
],
"command": "node"
}
}
}
Seamless access to top MCP servers powering the future of AI integration.