Labsco
MCP SERVER

MCP Proxy Server

by adamwattis

Put several MCP servers behind one connection, so a client sees a single combined set of tools, resources and prompts.

MCP Plumbing: Proxies, Registries & Inspectors
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

One command — npx -y mcp-proxy-server