KM

kfirtoledo/multi-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

111 stars 25 forks Качество 62 Тренд 15MIT

kfirtoledo/multi-mcp — это кандидат-сервер MCP, импортированный из https://github.com/kfirtoledo/multi-mcp.

Обзор

kfirtoledo/multi-mcp — это кандидат-сервер MCP, импортированный из https://github.com/kfirtoledo/multi-mcp.

Обзор (машинный перевод)

Гибкий и динамический Multi-MCP прокси-сервер, который работает как один MCP-сервер при подключении и маршрутизации между ними несколько серверов backend MCP над STDIO или SSE.

🚀 Особенности

  • ✅ Поддерживает транспорты [STDIO и SSE
  • ✅ Может подключаться к MCP-серверам, работающим в режиме STDIO или SSE
  • ✅ Запросы прокси к нескольким серверам MCP
  • ✅ Автоматическая инициализация возможностей (инструментов, запросов, ресурсов) с подключённых серверов
  • ✅ Динамическое добавление/удаление MCP-серверов во время выполнения (через HTTP API)
  • ✅ Поддерживает инструменты с одинаковыми названиями на разных серверах (с использованием интервала имён)
  • ✅ Возможность развертывания на Kubernetes, открывая один порт для доступа ко всем подключённым MCP-серверам через прокси

📦 Установка

Чтобы начать работу над этим проектом локально:

🖥️ Бег локально

Вы можете запускать прокси локально в режиме STDIO или SSE в зависимости от ваших потребностей:

1. Режим STDIO

Для работы в стиле CLI (связь на основе труб). Используется для цепочки локально выполняемых инструментов или агентов.

2. Режим SSE

Запускает HTTP-сервер SSE, который открывает конечную точку /sse. Полезно для удалённого доступа, браузерных агентов и сетевых инструментов.

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

Multi MCP

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:

# 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.

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.

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):

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["./tools/get_weather.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 server_name::tool_name 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:

{
  "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 /mcp_servers List active MCP servers
POST /mcp_servers Add a new MCP server
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "weather": { "command": "python", "args": ["./tools/get_weather.py"] }, "calculator": { "command": "python", "args": ["./tools/calculator.py"] } } }