mcp-proxy-server

MCP.Pizza Chef: ptbsare

On its own it adds no abilities at all; it passes along whatever the servers behind it offer, which matters when your app limits how many you can add. A browser control panel switches individual tools on and off and renames them. That same panel includes a full command line into the machine it runs on, and password-protecting the connection is optional, so keep it off the open internet. Docker is the expected way to run it, and the project has gone about a year without updates.

Unmaintained · no updates in about a year
Other

Use This MCP server To

Combine several add-ons behind a single connection Switch off tools I never want my assistant using Rename a confusing tool so my assistant picks it correctly Share one set of add-ons across several apps Disable an add-on without editing files by hand

README

MCP Proxy Server

简体中文

✨ Key Features Highlight

  • 🌐 Web UI Management: Easily manage all connected MCP servers through an intuitive web interface (optional, requires enabling).
  • 🔧 Granular Tool Control: Enable or disable individual tools, and override names/descriptions via the Web UI.
  • 🛡️ Flexible Endpoint Authentication: Secure your HTTP-based endpoints (/sse, /mcp) with flexible authentication options (Authorization: Bearer <token> or X-API-Key: <key>).
  • 🔄 Robust Session Handling & Concurrency:
    • Improved SSE session handling for client reconnections (relying on server-sent endpoint events) and support for concurrent connections.
    • Streamable HTTP endpoint (/mcp) also supports concurrent client interactions.
  • 🚀 Versatile MCP Operations (Server & Proxy):
    • Acts as a Proxy: Connects to and aggregates multiple backend MCP servers of various types (Stdio, SSE, Streamable HTTP).
    • Acts as a Server: Exposes these aggregated capabilities through its own Streamable HTTP (/mcp) and SSE (/sse) endpoints. Can also run in a pure Stdio mode.
  • ✨ Real-time Install Output: Monitor Stdio server installation progress (stdout/stderr) directly in the Web UI.
  • ✨ Web Terminal: Access a command-line terminal within the Admin UI for direct server interaction (optional, use with caution due to security risks).

This server acts as a central hub for Model Context Protocol (MCP) resource servers. It can:

  • Connect to and manage multiple backend MCP servers (Stdio, SSE, and Streamable HTTP types).
  • Expose their combined capabilities (tools, resources) through a single, unified SSE interface, a Streamable HTTP interface, or act as a single Stdio-based MCP server itself.
  • Handle routing of requests to the appropriate backend servers.
  • Aggregate responses if needed (though primarily acts as a proxy).
  • Support multiple simultaneous SSE client connections with optional API key authentication.

Features

Resource & Tool Management via Proxy

  • Discovers and connects to multiple MCP resource servers defined in config/mcp_server.json.
  • Aggregates tools and resources from all connected active servers.
  • Routes tool calls and resource access requests to the correct backend server.
  • Maintains consistent URI schemes.

✨ Optional Web Admin UI (ENABLE_ADMIN_UI=true)

Provides a browser-based interface for managing the proxy server configuration and connected tools. Features include:

mcp-proxy-server FAQ

Does it do anything by itself?
No. It adds no abilities of its own. Everything you see through it comes from the servers you point it at.
Is it still being worked on?
The last change landed about a year ago. It still works as described, but do not expect fixes or new features soon.
Can I use this to hide tools I never want used?
Yes. The control panel lists every tool it found and lets you switch individual ones off, or give them clearer names.
How hard is it to set up?
This one is for the technically confident. You run it in Docker, write a configuration file listing each server, and manage it from a browser page.
Is it safe to leave running?
Keep it on your own network. The admin page includes a command line into the machine, and requiring a password is an option rather than the default.
Do I need a key or token?
Not for the hub itself. You may set a password to guard it, and any credentials belong to the individual servers you connect behind it.