Skip to main content
Glama

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

agent-mesh-mcp

MCP server — tools, events, webhooks, channels

JavaScript

agent-mesh-worker

Worker daemon — warm sessions, scheduling, RabbitMQ

Python

agent-mesh-lib

Shared library — identity, guardrails, memory, hooks

Python

agent-mesh-hooks

CLI hooks for Claude Code — auto-inject prompts + memory

Python

agent-mesh-memory

Temporal knowledge graph memory (Graphiti + FalkorDB)

Python

Architecture

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

Each 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 / Cursor

  • HTTP (server.mjs) — remote access via Streamable HTTP + Keycloak OAuth

Install

npm install -g agent-mesh-mcp

Tools

Agents

Tool

Description

create_agent

Create agent with slug, prompt, model, config

update_agent

Update prompt (bumps version), model, config

get_agent

Full details: prompt, guardrails, online workers

list_agents

All registered + online agents

ask_agent

Send a message to another agent via RabbitMQ

get_task_result

Poll async task result

cancel_agent

Cancel a running task

tail_agent

Live activity feed from a running agent

Guardrails

Pre-execution tool call validation. Three layers (fast to slow):

  1. regex — pattern match on tool input (microseconds)

  2. validator — Guardrails AI (DetectPII, ToxicLanguage, etc.)

  3. llm_judge — LLM evaluates criteria before allowing

Tool

Description

create_guardrail

Create a guardrail rule (global or per-agent)

list_guardrails

List all rules, filter by agent

delete_guardrail

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

create_schedule

Cron or interval schedule for an agent

list_schedules

All schedules with run history

delete_schedule

Remove a schedule

run_schedule

Fire a schedule immediately

Incidents

Tool

Description

create_incident

Track a P1/P2/P3 incident

list_incidents

Filter by severity/status

update_incident

Change status, assign agent, link PR

resolve_incident

Mark as resolved

Releases

Tool

Description

create_release

Track a deployment with steps + rollback

list_releases

All releases by status

get_release

Full release details

update_release

Update status (with transition validation)

close_release

Mark deployed/rolled back

Approvals

Tool

Description

request_approval

Request human approval (notifies via Telegram)

get_approval

Check approval status

list_approvals

All pending/approved/rejected

approve / reject

Respond to an approval

comment_approval

Add context to an approval

Other

Tool

Description

create_feature

Track a feature request

list_features

All features by status

update_feature

Change status/priority

report_mesh_bug

Report a bug in the mesh itself

list_mesh_bugs

All mesh bugs

update_mesh_bug

Fix/close a mesh bug

search_conversations

Search agent conversation history

notify

Send a notification via Telegram

get_setting / set_setting / list_settings

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 restart

Workers 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 state

Also 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_URL

amqp://guest:guest@localhost:5672/

RabbitMQ connection

RABBITMQ_MGMT_URL

http://localhost:15672

RabbitMQ management API

EXCHANGE_NAME

agents

RabbitMQ exchange

AGENT_NAME

unknown

Calling agent's address (set by worker)

AGENT_ID

Calling agent's UUID (set by worker)

WORKER_ID

Worker instance UUID (set by worker)

ASK_TIMEOUT

900

Reply timeout in seconds

MCP_PORT

3100

HTTP server port

KEYCLOAK_URL

http://localhost:8080

Keycloak base URL

KEYCLOAK_REALM

master

Keycloak realm

KEYCLOAK_CLIENT_ID

agent-mesh

OAuth client ID

KEYCLOAK_CLIENT_SECRET

OAuth client secret

DATABASE_URL

Postgres connection (Prisma)

License

MIT

F
license - not found
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
22dResponse time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

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

  • Durable agent-to-agent handoffs and shared scratchpad for multi-agent workflows.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/openbiocure/agent-mesh-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server