mcp-proxy-server
An MCP proxy server that aggregates and serves multiple MCP resource servers through a single interface TypeScript-based implementation.
Documentation
MCP Proxy Server
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:
- Connect to and manage multiple MCP resource servers
- Expose their combined capabilities through a unified interface
- Handle routing of requests to appropriate backend servers
- Aggregate responses from multiple sources
Features
Resource Management
- Discover and connect to multiple MCP resource servers
- Aggregate resources from all connected servers
- Maintain consistent URI schemes across servers
- Handle resource routing and resolution
Tool Aggregation
- Expose tools from all connected servers
- Route tool calls to appropriate backend servers
- Maintain tool state and handle responses
Prompt Handling
- Aggregate prompts from all connected servers
- Route prompt requests to appropriate backends
- Handle multi-server prompt responses
Configuration
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.jsonExample 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-serverDevelopment
Install dependencies:
npm installBuild the server:
npm run buildFor development with auto-rebuild:
npm run watchFor development with continuous run:
# Stdio
npm run dev
# SSE
npm run dev:sseInstallation
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.
Debugging
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 inspectorThe Inspector will provide a URL to access debugging tools in your browser.
Frequently asked questions
What is mcp-proxy-server?
mcp-proxy-server is An MCP proxy server that aggregates and serves multiple MCP resource servers through a single interface TypeScript-based implementation.
How do I install mcp-proxy-server?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-proxy-server open source?
Yes — it is hosted on GitHub at https://github.com/adamwattis/mcp-proxy-server/ and has 176 stars.
Related MCP tools
Example of an MCP server with custom tools that can be called directly from cursor TypeScript-based implementation.
MCP Server implementation for Xcode integration TypeScript-based implementation.
F2C MCP Server TypeScript-based implementation.
Playwright MCP server TypeScript-based implementation. Trusted by 22000+ developers. Trusted by 22000+ developers. Trusted by 22000+ developers.
Official Notion MCP Server TypeScript-based implementation. Trusted by 3400+ developers. Trusted by 3400+ developers. Trusted by 3400+ developers.
Directory for Awesome MCP Servers TypeScript-based implementation. Trusted by 1900+ developers. Trusted by 1900+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP