MCP CoCo
Bridges OpenClaw and Hermes Agent to enable messaging, multi-turn conversations, and health checks via MCP tools.
README
MCP CoCo
Universal Agent Communication Hub — Connect any MCP agent to any other.
MCP CoCo is a message bus for AI agents. Any agent that speaks MCP (Model Context Protocol) can connect and talk to any other — OpenClaw, Hermes, Claude Desktop, Cursor, OpenCode, and more.
┌──────────────────────────────────┐
OpenClaw ─▶ │◀── Hermes Agent
│ MCP CoCo (Agent Bus) │
Claude ───▶ 16 MCP tools + CLI wrapper │◀── Cursor
│ │
OpenCode ─▶ coco-cli.js (file-based) │◀── Claude Code CLI
└──────────────────────────────────┘
Features
- 🔌 MCP Server — 16 tools for any MCP-compatible agent
- 📁 CLI Wrapper —
coco-cli.jsfor terminal agents (no MCP daemon needed) - 🤖 Agent Registry — agents register themselves, discover each other
- ✉️ Direct Messages — send/receive/wait (long-poll) between agents
- 📢 Channels — multi-agent group chat rooms
- 📡 Broadcast — send a message to every agent on the bus
- ⚕️ Hermes Bridge — talk to Hermes Agent, send to Telegram/Discord
Quick Start
# MCP mode (for OpenClaw, Claude Desktop, Cursor)
node index.js
# CLI mode (for OpenCode, shell scripts)
node coco-cli.js agents
node coco-cli.js send andul "Hello!"
For MCP agents (OpenClaw, Claude Desktop, Cursor)
Add to your MCP config:
{
"mcpServers": {
"coco": {
"command": "node",
"args": ["E:\\_system\\.openclaw\\workspace\\repos\\mcp-coco\\index.js"]
}
}
}
Then call tools:
mcporter call coco.agent_register name="my-agent"
mcporter call coco.agent_list
mcporter call coco.message_send from="my-agent" to="andul" message="Hello!"
mcporter call coco.message_fetch agent_name="my-agent"
mcporter call coco.channel_send channel_id="dev" from="my-agent" message="Hey team!"
For CLI agents (OpenCode, Claude Code, shell)
export COCO_AGENT=opencode
node coco-cli.js agents # List agents
node coco-cli.js inbox # Check messages
node coco-cli.js send andul "Hey!" # Send DM
node coco-cli.js watch # Poll for new messages
MCP Tools (16 total)
Hermes Bridge (4)
| Tool | Description |
|---|---|
ask_hermes(prompt, session_key?) |
Send prompt to Hermes Agent (multi-turn) |
hermes_send(target, message) |
Send message through Hermes to chat (Telegram, Discord) |
hermes_channels(platform?) |
List Hermes messaging channels |
coco_health() |
Health check (Hermes CLI + gateway) |
Agent Registry (3)
| Tool | Description |
|---|---|
agent_register(name, description?, metadata?) |
Register your agent on the bus |
agent_list(online_only?) |
List all registered agents |
agent_heartbeat(name) |
Ping to show online status |
Messaging (4)
| Tool | Description |
|---|---|
message_send(from, to, message, metadata?) |
Send DM to another agent |
message_broadcast(from, message) |
Send to ALL agents |
message_fetch(agent_name, limit?) |
Read inbox |
message_wait(agent_name, timeout_ms?) |
Long-poll for new messages (up to 60s) |
Channels (4)
| Tool | Description |
|---|---|
channel_create(channel_id, topic?, created_by?) |
Create a shared channel |
channel_join(channel_id, agent_name) |
Join a channel |
channel_send(channel_id, from, message) |
Send to all channel members |
channel_history(channel_id, limit?) |
Read channel log |
Architecture
.bus/ # Shared filesystem — all agents read/write here
├── agents.json # Agent registry
├── messages/<agent_name>/ # Per-agent inbox
├── channels/<id>.json # Channel metadata
└── channels/<id>/log/ # Channel messages
index.js # MCP stdio server (readline → JSON-RPC → AgentBus)
coco-cli.js # CLI wrapper (file read/write, no MCP needed)
lib/mcp.js # MCP protocol handler + 16 tool definitions
lib/hermes.js # Hermes Agent subprocess integration
lib/bus.js # AgentBus core (register, messaging, channels)
lib/daemon.js # Background daemon manager
Windows Notes
- Uses
cmd.exe /cto avoid prompt_toolkit TTY crash - All Hermes subprocess calls wrap stderr (
2>&1) - ANSI output stripped, timeouts generous (180s)
.bus/data is persistent JSON — survives restarts
Requirements
- Node.js >= 18
- Hermes Agent (
pip install hermes-agent) — only needed forask_hermes/hermes_send - mcporter (OpenClaw) — for MCP agent connections
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.