MCP Proxy Hub
STDIOAggregates and serves multiple MCP resource servers through a single interface.
Aggregates and serves multiple MCP resource servers through a single interface.
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"], "env": ["SECRET_API_KEY"] } }, { "name": "Example Server 3", "transport": { "type": "sse", "url": "http://localhost:8080/sse" } } ] }
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
For development with continuous run:
# Stdio npm run dev # SSE npm run dev:sse
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", "KEEP_SERVER_OPEN": "1" } } } }
KEEP_SERVER_OPEN
will keep the SSE running even if a client disconnects. Useful when multiple clients connects to the MCP proxy.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.