K
kfirtoledo/multi-mcp
One server that routes to several backend MCP servers
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
We have neither an install command nor a public remote endpoint from this repository, so we do not print a config. A made-up one is worse than none. How each client wires MCP up →
- Source
- collected from the abordage/awesome-mcp list · type: MCP server
- Harvest history
- first seen 2026-11-05 · last seen 2026-11-14 · seen 10× · listed by 10 sources
- Score
- score 1,003 · 10 sources · mcp
FAQ (answers come from our records)
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
first catalogued 2026-11-05;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.
# Multi MCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A flexible and dynamic Multi-MCP Proxy Server that acts as a single MCP server while connecting to and routing between
multiple backend MCP servers over STDIO or SSE.
## 🚀 Features
✅ Supports both STDIO and SSE transports
✅ Can connect to MCP servers running in either STDIO or SSE mode
✅ Proxies requests to multiple MCP servers
✅ Automatically initializes capabilities (tools, prompts, resources) from connected servers
✅ Dynamically add/remove MCP servers at runtime (via HTTP API)
✅ Supports tools with the same name on different servers (using namespacing)
✅ Deployable on Kubernetes, exposing a single port to access all connected MCP servers through the proxy
## 📦 Installation
To get started with this project locally:
bash
# Clone the repository
git clone https://github.com/kfirtoledo/multi-mcp.git
cd multi-mcp
# Install using uv (recommended)
uv venv
uv pip install -r requirements.txt
## 🖥️ Running Locally
You can run the proxy locally in either STDIO or SSE mode depending on your needs:
### 1. STDIO Mode
For CLI-style operation (pipe-based communication).
Used for chaining locally executed tools or agents.
bash
uv run main.py --transport stdio
### 2. SSE Mode
Runs an HTTP SSE server that exposes a /sse endpoint.
Useful for remote access, browser agents, and network-based tools.
bash
uv run main.py --transport sse
Note: You can also configure the host and port using --host / --port arguments.
## ⚙️ Configuration
The proxy is initialized using a JSON config (default: ./mcp.json):
json
"mcpServers": {
"weather": {
"command": "python",
"args": ["./tools/getweather.py"]
},
"calculator": {
"command": "python",
"args": ["./tools/calculator.py"]
This config defines the initial list of MCP-compatible servers to spawn and connect at startup.
Note: Tool names are namespaced internally as servername::toolname to avoid conflicts and allow multiple servers to expose tools with the same base name. For example, if an MCP server named calculator provides an add tool, it will be referenced as calculator::add.
You can also connect to a remote MCP server using SSE:
json
"mcpServers": {
"weather": {
"url": "http://127.0.0.1:9080/sse"
More examples can be found in the examples/config/ directory.
## 🔄 Dynamic Server Management (SSE only)
When running in SSE mode, you can add/remove/list MCP servers at runtime via HTTP endpoints:
| Method | Endpoint | Description |
| GET | /mcpservers | List active MCP servers |
| POST | /mcpservers | Add a new MCP server |
| DELETE| /mcpservers/{name} | Remove an MCP server by name |
| GET | /mcptools | Lists all available tools and their serves sources|
### Example to add a new server:
bash
curl -X POST http://localhost:8080/mcpservers \
-H "Content-Type: application/json" \
--data @addserver.json
addserver.json:
json
"mcpServers": {
"unitconverter": {
"command": "python",
"args": ["./tools/unitconverter.py"]
## 🐳 Docker
You can containerize and run the SSE server in K8s:
multiple backend MCP servers over STDIO or SSE.
## 🚀 Features
✅ Supports both STDIO and SSE transports
✅ Can connect to MCP servers running in either STDIO or SSE mode
✅ Proxies requests to multiple MCP servers
✅ Automatically initializes capabilities (tools, prompts, resources) from connected servers
✅ Dynamically add/remove MCP servers at runtime (via HTTP API)
✅ Supports tools with the same name on different servers (using namespacing)
✅ Deployable on Kubernetes, exposing a single port to access all connected MCP servers through the proxy
## 📦 Installation
To get started with this project locally:
bash
# Clone the repository
git clone https://github.com/kfirtoledo/multi-mcp.git
cd multi-mcp
# Install using uv (recommended)
uv venv
uv pip install -r requirements.txt
## 🖥️ Running Locally
You can run the proxy locally in either STDIO or SSE mode depending on your needs:
### 1. STDIO Mode
For CLI-style operation (pipe-based communication).
Used for chaining locally executed tools or agents.
bash
uv run main.py --transport stdio
### 2. SSE Mode
Runs an HTTP SSE server that exposes a /sse endpoint.
Useful for remote access, browser agents, and network-based tools.
bash
uv run main.py --transport sse
Note: You can also configure the host and port using --host / --port arguments.
## ⚙️ Configuration
The proxy is initialized using a JSON config (default: ./mcp.json):
json
"mcpServers": {
"weather": {
"command": "python",
"args": ["./tools/getweather.py"]
},
"calculator": {
"command": "python",
"args": ["./tools/calculator.py"]
This config defines the initial list of MCP-compatible servers to spawn and connect at startup.
Note: Tool names are namespaced internally as servername::toolname to avoid conflicts and allow multiple servers to expose tools with the same base name. For example, if an MCP server named calculator provides an add tool, it will be referenced as calculator::add.
You can also connect to a remote MCP server using SSE:
json
"mcpServers": {
"weather": {
"url": "http://127.0.0.1:9080/sse"
More examples can be found in the examples/config/ directory.
## 🔄 Dynamic Server Management (SSE only)
When running in SSE mode, you can add/remove/list MCP servers at runtime via HTTP endpoints:
| Method | Endpoint | Description |
| GET | /mcpservers | List active MCP servers |
| POST | /mcpservers | Add a new MCP server |
| DELETE| /mcpservers/{name} | Remove an MCP server by name |
| GET | /mcptools | Lists all available tools and their serves sources|
### Example to add a new server:
bash
curl -X POST http://localhost:8080/mcpservers \
-H "Content-Type: application/json" \
--data @addserver.json
addserver.json:
json
"mcpServers": {
"unitconverter": {
"command": "python",
"args": ["./tools/unitconverter.py"]
## 🐳 Docker
You can containerize and run the SSE server in K8s:
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/kfirtoledo-multi-mcp/)
- Source
- awesome · https://github.com/kfirtoledo/multi-mcp
- Browse by field
- MCP servers
- Listed by
- 10 independent sources
- added
- today
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.