mcp-proxy
An MCP proxy server that aggregates and serves multiple MCP resource servers through a single HTTP server.
claude mcp add --transport stdio tbxark-mcp-proxy docker run -d -p 9090:9090 -v /path/to/config.json:/config/config.json ghcr.io/tbxark/mcp-proxy:latest --config /config/config.json
How to use
The MCP Proxy Server acts as a single HTTP entrypoint that aggregates multiple MCP servers behind it. It proxies and streamlines tools, prompts, and resources from various MCP backends, exposing them through Server-Sent Events (SSE) or streamable HTTP. This allows clients to connect once and retrieve content from multiple MCP sources in a unified interface, with flexible client type support such as stdio, SSE, and streamable-http. Set up and configure the proxy to point to the individual MCP backends you want to aggregate, and the proxy will handle routing, authentication (if configured), and streaming of data to clients.
How to install
Prerequisites:
- Docker installed (recommended for quick start) or Go toolchain if building from source
- Access to a config.json that defines the MCP backends to aggregate
Option A: Run with Docker (recommended)
- Prepare a configuration file (config.json) that lists the MCP backends to proxy. Example content is provided in docs/configuration.md.
- Run the container with your config mounted:
# Example using docker run with a mounted config
docker run -d -p 9090:9090 -v /path/to/config.json:/config/config.json ghcr.io/tbxark/mcp-proxy:latest --config /config/config.json
Option B: Build from source (Go)
- Ensure Go is installed (1.20+ recommended).
- Clone the repository and build:
git clone https://github.com/tbxark/mcp-proxy.git
cd mcp-proxy
make build
- Run the binary with your config:
./build/mcp-proxy --config path/to/config.json
Option C: Other deployment methods
- You can also deploy via Docker Compose or Kubernetes once you have the same configuration file prepared.
- See docs/deployment.md for additional deployment options.
Additional notes
Tips and notes:
- Ensure your config.json references accessible MCP backends and uses supported client types (stdio, SSE, streamable-http).
- If using Docker, map the host path to the container's /config path as shown in examples, and pass --config /config/config.json inside the container.
- The proxy exposes port 9090 by default in the examples; adjust your firewall and reverse proxy accordingly.
- Check logs if backends fail to connect or if streaming endpoints return errors; common issues include network ACLs, incorrect backend URLs, or missing authentication tokens.
- If you plan to scale, consider running multiple instances behind a load balancer with consistent config files.
Related MCP Servers
mcp-python-interpreter
MCP Python Interpreter: run python code. Python-mcp-server, mcp-python-server, Code Executor
godoc
A mcp server provide infomation from pkg.go.dev. For all golang programmers
phonepi
PhonePi MCP enables seamless integration between desktop AI tools and your smartphone, providing 23+ direct actions including SMS messaging, phone calls, contact management, snippet creation and search, clipboard sharing, notifications, battery status checks, and remote device controls.
unity
A Unity MCP server that allows MCP clients like Claude Desktop or Cursor to perform Unity Editor actions.
create -kit
Scaffold a production-ready Model Context Protocol (MCP) server in seconds.
mcpkit
Easy to use Official MCP Registry Client UI. npx @cybertheory/mcpkit