MCP Agent Bridge
MCP Agent Bridge
Легковесный сервер-мост MCP (Model Context Protocol), который позволяет Hermes Agent и OpenClaw обмениваться инструментами и памятью, формируя кооперативную мультиагентную систему.
Архитектура
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Hermes │ MCP │ Agent Bridge │ CLI/ │ OpenClaw │
│ Agent │◄───────►│ (FastMCP SSE) │◄───────►│ CLI │
│ │ client │ Port :18900 │ HTTP │ │
│ Feishu/WX │ │ │ │ Image/Web │
│ Memory/Plan │ │ Shared Memory │ │ TTS/Video │
└─────────────┘ └──────────────────┘ └─────────────┘Hermes предоставляет каналы обмена сообщениями (Feishu, WeChat, Telegram…) и свои возможности планирования/рассуждения.
OpenClaw предоставляет генерацию AI-изображений, веб-поиск, TTS и генерацию видео.
Мост делает сильные стороны каждого агента доступными для другого через стандартные вызовы инструментов MCP, а также общую память на базе SQLite.
Related MCP server: ACP-MCP-Server
Предоставленные инструменты
Инструмент | Направление | Описание |
| OC → Hermes | Генерация AI-изображений через OpenClaw |
| OC → Hermes | Веб-поиск через OpenClaw |
| OC → Hermes | Извлечение контента URL через OpenClaw |
| OC → Hermes | Преобразование текста в речь через OpenClaw |
| Hermes → OC | Отправка сообщений через платформы Hermes |
| Hermes → OC | Делегирование задач AI-агенту Hermes |
| Двустороннее | Чтение из общего хранилища «ключ-значение» |
| Двустороннее | Запись в общее хранилище «ключ-значение» |
| Двустороннее | Список ключей памяти с опциональными фильтрами |
| Двустороннее | Удаление ключа памяти |
| — | Проверка работоспособности и список зарегистрированных модулей |
Быстрый старт
Предварительные требования
Python 3.11+
Hermes Agent с включенным API-сервером
Установленный и настроенный CLI OpenClaw
pip install "mcp[cli]>=1.0" aiohttp pyyaml
Установка
git clone https://github.com/fkdt01/mcp-agent-bridge.git
cd mcp-agent-bridge
pip install -e .Настройка
cp config.example.yaml config.yaml
# Edit config.yaml — fill in your API keys and pathsКлючевые настройки:
openclaw:
cli_path: "openclaw" # or full path like /usr/local/bin/openclaw
image_provider: "openai" # default image gen provider
web_search_provider: "duckduckgo"
hermes:
api_url: "http://127.0.0.1:8888"
api_key: "" # or set HERMES_API_KEY env var
default_channel: "feishu"
memory:
backend: "sqlite"
db_path: "data/bridge_memory.db"Запуск
# Start the bridge server
python -m bridge.server
# With custom options
python -m bridge.server --config /path/to/config.yaml --port 18900 --log-level DEBUGПодключение Hermes
Добавьте в ~/.hermes/config.yaml:
mcp_servers:
agent-bridge:
transport: sse
url: http://127.0.0.1:18900/sseПодключение OpenClaw
Добавьте в ~/.openclaw/openclaw.json → mcpServers:
{
"mcpServers": {
"agent-bridge": {
"transport": "sse",
"url": "http://127.0.0.1:18900/sse"
}
}
}Примеры использования
Hermes генерирует изображение через OpenClaw
Когда Hermes нужно сгенерировать изображение (например, из чата Feishu), он вызывает:
oc_image_generate({
prompt: "A futuristic city at sunset, cyberpunk style",
aspect_ratio: "16:9",
model: "openai"
})→ Мост запускает openclaw capability image generate --prompt "..." --json
→ Возвращает путь к изображению/метаданные в Hermes
→ Hermes доставляет изображение пользователю
OpenClaw отправляет сообщение Feishu через Hermes
hermes_send_message({
message: "✅ Image generation complete!",
target: "feishu"
})→ Мост отправляет POST-запрос к API Hermes /v1/chat/completions
→ Hermes доставляет сообщение в канал Feishu
Общая память между агентами
Hermes записывает контекст проекта:
shared_memory_write({
key: "project.math-game.pet-design",
value: "算术小喵: 草原主题, 绿色配色",
source: "hermes"
})OpenClaw считывает его позже:
shared_memory_read({ key: "project.math-game.pet-design" })
→ { value: "算术小喵: 草原主题, 绿色配色", source: "hermes", updated_at: 1745631000 }Добавление пользовательских инструментов
Создайте новый файл в bridge/tools/, следуя соглашению об именовании:
oc_*.py— инструменты на базе OpenClawhermes_*.py— инструменты на базе Hermesshared_*.py— общие/двусторонние инструменты
Каждый модуль должен предоставлять функцию register(mcp, config):
"""My custom tool."""
from mcp.server.fastmcp import FastMCP
from typing import Any
def register(mcp: FastMCP, config: dict[str, Any]) -> None:
@mcp.tool()
async def my_custom_tool(param: str) -> dict[str, Any]:
"""Tool description — this becomes the MCP tool description."""
# Your implementation here
return {"result": "ok"}Инструмент автоматически обнаруживается и регистрируется при запуске сервера.
Запуск в качестве службы systemd
cat > ~/.config/systemd/user/mcp-agent-bridge.service << 'EOF'
[Unit]
Description=MCP Agent Bridge Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/path/to/mcp-agent-bridge
ExecStart=/usr/bin/python -m bridge.server
Restart=on-failure
RestartSec=5
Environment=HERMES_API_KEY=your_key_here
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable --now mcp-agent-bridgeСтруктура проекта
mcp-agent-bridge/
├── bridge/
│ ├── __init__.py
│ ├── __main__.py
│ ├── server.py # FastMCP server entry point
│ ├── config.py # YAML + env-var config loader
│ ├── openclaw_runner.py # Shared async CLI subprocess runner
│ ├── memory.py # SQLite-backed shared memory store
│ └── tools/
│ ├── __init__.py # Auto-discovery & registration
│ ├── oc_image.py # Image generation
│ ├── oc_web.py # Web search & fetch
│ ├── oc_tts.py # Text-to-speech
│ ├── hermes_messaging.py # Message sending
│ ├── hermes_chat.py # Task delegation
│ └── shared_memory.py # Shared memory tools
├── config.example.yaml
├── .gitignore
├── LICENSE
├── README.md
└── pyproject.tomlЛицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
An MCP memory server. One memory your agents share — across models, devices and apps.
Shared memory and mail for your AI agents. Verified with Claude Code; other MCP clients in testing.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseAqualityFmaintenanceA bridge server that enables MCP-compatible AI assistants like Claude to seamlessly discover, communicate with, and manage A2A protocol agents.733 PyPI147Apache 2.0
- AlicenseBqualityFmaintenanceA bridge server that connects Agent Communication Protocol (ACP) agents with Model Context Protocol (MCP) clients, enabling seamless integration between ACP-based AI agents and MCP-compatible tools like Claude Desktop.16125 PyPI24MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server and local HTTP bridge designed to integrate remote upstream MCP tools into OpenClaw skills or local environments. It enables users to generate skill wrappers and proxy tool calls via a local HTTP bridge for use in Claude Desktop, Cursor, or OpenClaw.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceBridges OpenClaw and Hermes Agent, enabling multi-turn conversations, messaging via Hermes channels, and health checks through MCP tools.12 npmMIT