MCP Proxy Server

by MCP-Mirror

303 downloads
Not rated
GitHub

About

MCP Proxy Server is a central hub that aggregates and serves multiple MCP resource servers through a single unified interface. It connects to, manages, and routes requests to backend MCP servers, combining their capabilities for clients.

Details

Author
MCP-Mirror
Downloads
303
Categories
Other

- Discover and connect to multiple MCP resource servers
- Aggregate resources from all connected servers
- Route tool calls to appropriate backend servers
- Aggregate prompts from all connected servers
- Handle multi-server prompt responses
- Maintain consistent URI schemes across servers

Install dependencies with npm install, build with npm run build, then run with MCP_CONFIG_PATH=./config.json mcp-proxy-server. Provide a JSON configuration file (copy config.example.json) listing the MCP servers to connect. For Claude Desktop, add the server config to claude_desktop_config.json.

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.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

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Installation

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"
      }
    }
  }
}

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 inspector

The Inspector will provide a URL to access debugging tools in your browser.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.