agent-mesh-mcp
Provides tools for inter-agent communication via RabbitMQ, enabling agents to ask questions routed by topic.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@agent-mesh-mcpask backend agent about deployment status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
agent-mesh-mcp
MCP server for a distributed AI agent mesh. Agents communicate via RabbitMQ, persist state in Postgres, and are managed through MCP tools.
Part of the Agent Mesh ecosystem:
Repo | What | Language |
MCP server — tools, events, webhooks, channels | JavaScript | |
Worker daemon — warm sessions, scheduling, RabbitMQ | Python | |
Shared library — identity, guardrails, memory, hooks | Python | |
CLI hooks for Claude Code — auto-inject prompts + memory | Python | |
Temporal knowledge graph memory (Graphiti + FalkorDB) | Python |
Architecture

PlantUML source — regenerate with plantuml docs/architecture.puml
Related MCP server: gptqueue
Agent Addressing
Agents use a slug@repo:scope address format:
devops-engineer # unique role, no repo needed
js-engineer@obc-connectors # same role, different repos
js-engineer@obc-platform
architect@obc-datalake:landing # same role + repo, different scopes
architect@obc-datalake:warehouseEach address produces a deterministic UUID (v5) — identical in Python and JS. No DB lookup needed to know an agent's ID.
Transports
stdio (
index.mjs) — for local Claude Code / CursorHTTP (
server.mjs) — remote access via Streamable HTTP + Keycloak OAuth
Install
npm install -g agent-mesh-mcpTools
Agents
Tool | Description |
| Create agent with slug, prompt, model, config |
| Update prompt (bumps version), model, config |
| Full details: prompt, guardrails, online workers |
| All registered + online agents |
| Send a message to another agent via RabbitMQ |
| Poll async task result |
| Cancel a running task |
| Live activity feed from a running agent |
Guardrails
Pre-execution tool call validation. Three layers (fast to slow):
regex — pattern match on tool input (microseconds)
validator — Guardrails AI (DetectPII, ToxicLanguage, etc.)
llm_judge — LLM evaluates criteria before allowing
Tool | Description |
| Create a guardrail rule (global or per-agent) |
| List all rules, filter by agent |
| Remove a rule |
# Block git push to prod for all agents
create_guardrail(tool="Bash", pattern="git push.*prod", action="block")
# PII detection on all tool inputs for a specific agent
create_guardrail(tool="*", type="validator", agent="js-engineer@obc-connectors",
config={"validator":"DetectPII","params":["EMAIL_ADDRESS"]})Scheduling
Tool | Description |
| Cron or interval schedule for an agent |
| All schedules with run history |
| Remove a schedule |
| Fire a schedule immediately |
Incidents
Tool | Description |
| Track a P1/P2/P3 incident |
| Filter by severity/status |
| Change status, assign agent, link PR |
| Mark as resolved |
Releases
Tool | Description |
| Track a deployment with steps + rollback |
| All releases by status |
| Full release details |
| Update status (with transition validation) |
| Mark deployed/rolled back |
Approvals
Tool | Description |
| Request human approval (notifies via Telegram) |
| Check approval status |
| All pending/approved/rejected |
| Respond to an approval |
| Add context to an approval |
Other
Tool | Description |
| Track a feature request |
| All features by status |
| Change status/priority |
| Report a bug in the mesh itself |
| All mesh bugs |
| Fix/close a mesh bug |
| Search agent conversation history |
| Send a notification via Telegram |
| Mesh configuration |
Events
Domain events are emitted on state changes and published to RabbitMQ:
incident.created → notifies Telegram (P1/P2), publishes to event.incident.created
release.status_changed → notifies subscribers, triggers deploy queue
approval.requested → sends Telegram buttons, publishes event
feature.created → publishes event
mesh.shutdown → all workers stop consuming
mesh.resume → workers restartWorkers can bind to event topics in their worker.json:
{
"event_topics": ["event.incident.*", "event.release.*"]
}Kill Switch
POST /mesh/shutdown → MESH_ENABLED=false, pauses schedules, broadcasts event
POST /mesh/resume → MESH_ENABLED=true, resumes schedules
GET /mesh/status → current stateAlso available via Telegram: /shutdown, /resume, /meshstatus
Status Transitions
YAML-based validation stored in mesh_settings. Prevents invalid state changes:
incident:
open: [investigating]
investigating: [fix_submitted, resolved]
fix_submitted: [resolved, investigating]
release:
ready: [approved, cancelled]
approved: [deploying]
deploying: [deployed, rolled_back]Worker (agent-mesh-worker)
The worker is a separate Python package: agent-mesh-worker
worker.json:
{
"slug": "js-engineer",
"cwd": "/path/to/repo",
"scope": "hotfix",
"prompt_file": ".claude/agents/js-engineer.md"
}Repo is derived from basename(cwd). Override with "repo": "obc-connectors-core" when the directory name doesn't match.
Environment Variables
Variable | Default | Description |
|
| RabbitMQ connection |
|
| RabbitMQ management API |
|
| RabbitMQ exchange |
|
| Calling agent's address (set by worker) |
| — | Calling agent's UUID (set by worker) |
| — | Worker instance UUID (set by worker) |
|
| Reply timeout in seconds |
|
| HTTP server port |
|
| Keycloak base URL |
|
| Keycloak realm |
|
| OAuth client ID |
| — | OAuth client secret |
| — | Postgres connection (Prisma) |
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- AgenTruxOAuthcom.agentrux
Authenticated event topics for agent-to-agent messaging with per-agent credentials and audit logs.
Agent communication platform for agent to agent messaging via MCP. Messages, channels, skills.
Agent-native collaboration network: orchestrate a team of long-running agents from any MCP client.
Agent-to-agent network for teams: dm, who-knows-X routing, shared rooms. Human-in-the-loop.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to communicate with each other through Slack-like room-based channels with messaging, mentions, presence management, and long-polling for real-time collaboration.4 npm4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to discover each other and exchange typed messages through a Redis-backed queue via MCP tool calls, with support for registration, heartbeat, and queue management.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables Cursor agents to communicate via a shared chat room, allowing them to ask questions, share status, and warn about conflicts while collaborating on the same repo.221 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables LLM agents to manage RabbitMQ queues, exchanges, and shovels via MCP tools, with restricted mode for production environments.Apache 2.0