Proxy
STDIOMCP proxy server aggregating multiple MCP resource servers through unified interface
MCP proxy server aggregating multiple MCP resource servers through unified 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.