Skip to main content
Glama

mcp-agent-mesh

Mesh-шлюз для MCP — позволяет одному MCP-клиенту обращаться к N MCP-серверам с маршрутизацией на основе префиксов, проверками здоровья, автоматическим переключением при отказе (circuit breaker) и единой конечной точкой как через stdio, так и через Streamable HTTP.

Что он делает

mcp-agent-mesh объединяет несколько вышестоящих MCP-серверов за одним логическим MCP-сервером. Каждый инструмент вышестоящего сервера доступен под префиксом server_name.tool_name, поэтому клиент, подключающийся к mesh-шлюзу, видит единый tools/list, содержащий инструменты всех работоспособных вышестоящих серверов.

Когда вызов инструмента завершается ошибкой и circuit breaker сервера размыкается, mesh-шлюз автоматически переключается на настроенные серверы-реплики, прежде чем вернуть ошибку клиенту.

Related MCP server: mcp-0ne

Возможности

Возможность

Описание

Агрегация

tools/list объединяет инструменты всех вышестоящих серверов в единый плоский список

Префиксная маршрутизация

Вызовите math.add — и mesh-шлюз направит запрос на сервер math

Circuit breaker

Индивидуальный circuit breaker для каждого сервера с настраиваемым порогом и таймаутом

Проверка здоровья

Фоновый цикл ping обнаруживает ранние сбои вышестоящих серверов

Переключение при отказе

Настраиваемые группы переключения позволяют алиасам подменять отказавший сервер

Двойной транспорт

Работает как stdio MCP-сервер и как Streamable HTTP-сервер

Таймауты и повторы

Каждый вышестоящий вызов обёрнут в asyncio.wait_for

Архитектура

                     ┌─────────────────────┐
  MCP client ───────►│   MeshGateway       │
                     │   (stdio / HTTP)    │
                     └────────┬───────────┘
                              │ tools/list
                              │ tools/call
                    ┌─────────┼─────────────┐
                    ▼         ▼             ▼
               ┌────────┐ ┌─────────┐ ┌─────────┐
               │ Server │ │ Server  │ │ Server  │
               │  "A"   │ │  "B"   │ │  "C"   │   (upstream MCP servers)
               └────────┘ └─────────┘ └─────────┘

Модули

Модуль

Ответственность

config.py

Разбор YAML-конфигурации — ServerConfig, MeshConfig

health.py

Индивидуальный CircuitBreaker для сервера + ServerHealthMonitor (фоновый ping)

router.py

Префиксная маршрутизация (server.tool), разрешение групп переключения, реестр инструментов

gateway.py

MeshGateway — подключение к вышестоящим серверам, агрегация списков инструментов, маршрутизация вызовов, обслуживание MCP через stdio + HTTP

Установка

pip install -e ".[dev]"

Использование

CLI (режим stdio)

mcp-agent-mesh --config examples/mesh.yaml --transport stdio

Режим HTTP

mcp-agent-mesh --config examples/mesh.yaml --transport http --host 0.0.0.0 --port 8000

Как клиентская конфигурация (Claude Code / Codex / OpenCode)

{
  "mcpServers": {
    "mesh": {
      "command": "mcp-agent-mesh",
      "args": ["--config", "/path/to/mesh.yaml", "--transport", "stdio"]
    }
  }
}
{
  "mcpServers": {
    "mesh": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

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

Полный пример см. в examples/mesh.yaml. Ключевые поля:

servers:
  - name: math            # tool-name prefix
    transport: stdio       # "stdio" or "http"
    command: python        # stdio: how to spawn
    args: ["-m", "..."]
    url: http://...        # http: endpoint URL
    timeout: 30.0
    circuit_breaker_threshold: 3
    circuit_breaker_timeout: 300.0

failover_groups:
  math: [math_backup]      # failover aliases for the "math" server

Тестирование

pytest tests/ -v

Тестовый набор использует резидентные фейковые MCP-серверы (без реальных субпроцессов) и покрывает разбор конфигурации, логику circuit breaker, префиксную маршрутизацию, агрегацию инструментов, переключение при отказе и сквозное поведение шлюза.

Лицензия

MIT

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A standalone MCP gateway that multiplexes multiple backend MCP servers behind a single endpoint, supporting both HTTP and stdio transports. It allows users to dynamically manage backends at runtime and organizes tools using a configurable namespace prefix.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP Gateway that aggregates multiple upstream MCP servers into a single endpoint with persistent connections, tool registry, and authentication.
    16 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A universal MCP gateway that aggregates multiple MCP servers into a single endpoint, providing features like hot-reload, auto-healing, and a hook system for request/response mutation.
    1
    MIT