Aggregate Multiple MCP Servers
MCP proxy that aggregates multiple MCP servers behind one HTTP entrypoint, with shared OAuth token handling for downstream servers.
0.58.0Add to Favorites
Why it matters
Unify access to multiple MCP servers, consolidating tools, prompts, and resources into a single, streamlined HTTP interface for enhanced productivity.
Outcomes
What it gets done
Proxy multiple MCP clients simultaneously.
Aggregate diverse tools, prompts, and resources.
Serve aggregated content via SSE or streaming HTTP.
Configure flexible client types (stdio, sse, streamable-http).
Source
Get it from source
Spark does not host a copy of it.
Open sourceReports
Agent outcome reports
No reports yet
Overview
MCP Proxy Server
MCP Proxy Server sits in front of multiple MCP servers and exposes them through one HTTP entrypoint, merging their tools, prompts, and resources for connecting clients. It also handles OAuth on behalf of downstream servers that require it. Use it when you run several MCP servers and want clients to connect once instead of configuring each server individually, especially when a downstream server needs interactive OAuth.
What it does
MCP Proxy Server aggregates multiple MCP servers behind a single HTTP entrypoint, merging the tools, prompts, and resources of every downstream server into one connection point for MCP clients.
When to use - and when NOT to
Use it when you run several separate MCP servers and want a single endpoint for clients to connect to, instead of configuring each client with every individual server. It is especially useful for downstream servers that require interactive OAuth, such as Notion: the proxy authorizes once and then holds and refreshes the token on behalf of every caller, so individual clients never need to complete the OAuth flow themselves. It is not a replacement for the underlying MCP servers - it only aggregates and forwards them.
Capabilities
The proxy serves clients over Server-Sent Events or streamable HTTP, and can connect to downstream servers over stdio, sse, or streamable-http transports depending on how each is configured. An online Claude config converter is provided to translate configurations for Claude clients.
How to install
Build from source with Go:
git clone https://github.com/tbxark/mcp-proxy.git
cd mcp-proxy
make build
./build/mcp-proxy --config path/to/config.json
Or install directly via Go:
go install github.com/tbxark/mcp-proxy@latest
A Docker image is also published, with support for launching MCP servers via npx and uvx:
docker run -d -p 9090:9090 -v /path/to/config.json:/config/config.json ghcr.io/tbxark/mcp-proxy:latest
It can also load its configuration from a remote URL instead of a local file. The project is MIT licensed and was inspired by the earlier adamwattis/mcp-proxy-server project.
Who it's for
Teams running multiple MCP servers - internal tools, third-party integrations, OAuth-gated services like Notion - who want to expose them to MCP clients through one aggregated, authenticated entrypoint instead of managing per-server connections.
Source README
MCP Proxy Server
An MCP proxy that aggregates multiple MCP servers behind a single HTTP entrypoint.
Features
- Proxy multiple MCP clients: aggregate tools, prompts, and resources from many servers.
- SSE and streamable HTTP: serve via Server‑Sent Events or streamable HTTP.
- Flexible config: supports
stdio,sse, andstreamable-httpclient types. - OAuth client support: authorize once against downstream servers that require interactive OAuth (e.g. Notion), then let the proxy hold and refresh the token for every caller.
Documentation
- Configuration: docs/configuration.md
- Usage: docs/usage.md
- Deployment: docs/deployment.md
- Claude config converter: https://tbxark.github.io/mcp-proxy
Quick Start
Build from source
git clone https://github.com/tbxark/mcp-proxy.git
cd mcp-proxy
make build
./build/mcp-proxy --config path/to/config.json
Install via Go
go install github.com/tbxark/mcp-proxy@latest
Docker
The image includes support for launching MCP servers via npx and uvx.
docker run -d -p 9090:9090 -v /path/to/config.json:/config/config.json ghcr.io/tbxark/mcp-proxy:latest
# or provide a remote config
docker run -d -p 9090:9090 ghcr.io/tbxark/mcp-proxy:latest --config https://example.com/config.json
More deployment options (including docker‑compose) are in docs/deployment.md.
Configuration
See full configuration reference and examples in docs/configuration.md.
An online Claude config converter is available at: https://tbxark.github.io/mcp-proxy
Usage
Command‑line flags, endpoints, and auth examples are documented in docs/usage.md.
Thanks
- This project was inspired by the adamwattis/mcp-proxy-server project
- If you have any questions about deployment, you can refer to 《在 Docker 沙箱中运行 MCP Server》(@ccbikai)
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.