LABSCO SUMMARY
One entry in your client config instead of eight.
The problem it solves is administrative rather than technical: client configuration files get long, and some clients handle a crowd of servers badly. Worth knowing what it does not do - it merges and routes, it does not filter or rename, so two backends offering the same tool name is something you resolve on your side.
What it is
An aggregator. It connects to the backend servers listed in a configuration file, merges what they expose, and routes each incoming call to the server that owns it - so a client that supports one connection can reach several.
What you get
- Tools from every connected server, offered as one list, with calls routed to the right backend
- Resources aggregated across servers with URI schemes kept consistent, so resolution still works
- Prompts collected from all backends and routed the same way
- Backends declared either as a command to launch or as an SSE URL, so local and remote servers mix in one config
- An option to keep the SSE connection open when a client disconnects, for when several clients share the proxy
Requirements
Node. Copy the example configuration to config.json and list your servers, each with a name and a transport - a command with optional args and environment variable names, or an SSE URL. The path is mandatory and goes in MCP_CONFIG_PATH. KEEP_SERVER_OPEN set to 1 keeps SSE alive across client disconnects. Build with npm install and npm run build.
Setup effort
Build from source — git clone https://github.com/adamwattis/mcp-proxy-server.git
USE CASES
Cutting a long client configuration down to one line
List the servers in the proxy's config once and point the client at the proxy, rather than repeating them in every client you use.
Sharing one set of servers between several clients
Run the proxy with the keep-open flag so the connection survives a client disconnecting and reconnecting.
Mixing local and remote servers
Declare some backends as commands and others as SSE URLs in the same file; the client sees one surface either way.
BEFORE YOU INSTALL
What to know first
Tools you get
0 tools when we connected.
Requires
Node.js and npm, to build it
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/adamwattis/mcp-proxy-server.git
cd mcp-proxy-server
npm install
npm run build
cp config.example.json config.jsonList the servers to aggregate in config.json, each with a name and a transport: a command with optional args and env variable names, or an SSE URL
MCP Clients
Claude Desktop
{
"mcpServers": {
"mcp-proxy": {
"command": "<YOUR_PATH_TO_MCP_PROXY_SERVER>/build/index.js",
"env": {
"MCP_CONFIG_PATH": "<YOUR_MCP_CONFIG_PATH>",
"KEEP_SERVER_OPEN": "1"
}
}
}
}<YOUR_PATH_TO_MCP_PROXY_SERVER> is the absolute path of your clone, and <YOUR_MCP_CONFIG_PATH> is the full path to the config.json you edited. KEEP_SERVER_OPEN=1 keeps the SSE connection open when a client disconnects.