AgentMesh MCP
Enables CrewAI agents to participate in a coordinated multi-agent swarm by providing atomic task claiming, task lifecycle management, and board status observability to prevent collisions and duplicated work.
Enables LangGraph agents to coordinate within a multi-agent swarm through atomic task claiming, state transitions, and real-time queue metrics, avoiding race conditions and duplicated effort.
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., "@AgentMesh MCPclaim the highest priority pending task for agent-7"
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.
AgentMesh MCP (Lite Edition)
AgentMesh MCP is a resilient Model Context Protocol (MCP) server designed to coordinate multi-agent AI swarms (Claude, Cursor, CrewAI, LangGraph, custom subagents) without cloud deadlocks, race conditions, or duplicated work.
Powered by a high-throughput, zero-dependency SQLite WAL engine, AgentMesh provides mutual-exclusion task claiming and atomic state transitions so multiple autonomous agents can collaborate seamlessly in parallel.
๐ฏ The Problem
When running multiple AI agents in parallel:
Collision & Race Conditions: Multiple agents attempt to tackle the same problem or modify the same files simultaneously, destroying each other's work.
Zombie Locks: If an agent times out or crashes during an API call, tasks get stuck indefinitely.
Cloud Overhead: Setting up Redis, RabbitMQ, or Celery just to let 3 local AI agents work together is overkill and introduces privacy leakage.
AgentMesh solves this locally and deterministically with a lightweight, standardized MCP server.
Related MCP server: coordinaut
โจ Features (Lite Edition)
๐ Atomic Mutual Exclusion: Guaranteed single-claim mechanics using SQLite WAL
BEGIN IMMEDIATEtransactions.โก Zero External Dependencies: Built with pure Python 3 standard library (
sqlite3,json,uuid).๐ ๏ธ Full MCP Compliance: Implements MCP standard (
tools/list,tools/call,initialize,ping) overstdio.๐ Real-time Observability: CLI and MCP tools to inspect swarm board status, active worker counts, and queue depth.
๐ Quickstart
1. Installation
git clone https://github.com/johannschiffer/agentmesh-mcp.git
cd agentmesh-mcp
pip install -e .2. Configure in Claude Desktop or Cursor
Add to your claude_desktop_config.json or Cursor MCP settings:
{
"mcpServers": {
"agentmesh": {
"command": "python",
"args": ["-m", "agentmesh.cli", "run"]
}
}
}3. CLI Inspection
Check the current state of your swarm at any time:
# View board metrics
agentmesh status
# List pending or active tasks
agentmesh list --status pending๐ ๏ธ MCP Tools Reference
Tool | Parameters | Description |
|
| Adds a task to the queue in |
|
| Atomically claims the highest priority pending task |
|
| Marks task as completed with output payload |
|
| Marks task as failed with error details |
|
| Retrieves complete task state and payload |
|
| Queries tasks with status and worker filters |
| none | Returns high-level metrics of the entire swarm |
๐ Upgrade to AgentMesh Pro
Need enterprise capabilities for production autonomous swarms?
The AgentMesh Pro Edition adds:
โ๏ธ DAG Dependency Engine: Complex multi-step task graphs (
depends_on). Subtasks stay locked until parents pass. Cycle-detection prevents infinite deadlock loops.๐ Heartbeat & Zombie Lease Reclaimer: Automatic detection of crashed or frozen agents. Automatically revokes expired leases back to the pool.
๐ง ACID Shared Memory Blackboard: Namespaced key-value store with TTL for inter-agent context and artifact sharing.
๐ Swarm Cost & Token Ledger: Telemetry tracking execution time, token burn, and API costs per agent.
๐ณ Production Docker & Compose: Ready-to-ship container configurations.
๐งช Comprehensive Pytest Suite: 100% test coverage ready for CI/CD.
๐ Get AgentMesh Pro on Gumroad ($14.99 USD)
๐ License
MIT ยฉ 2026 Johann Schiffer
Available Tools
7 toolsclaim_taskB
Atomically claim the highest priority pending task for this agent.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Unique identifier of the claiming agent (e.g., 'researcher-agent-1'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose real behavioral traits: atomicity (concurrency safety) and priority-ordered selection from pending tasks. However, it omits the failure mode when no pending task exists (error vs. empty result), whether the claim is exclusive/locked, and whether it expires or can be released.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action verb, carrying only the qualifying details (atomic, highest priority, pending, this agent). No filler and nothing misplaced.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-mutating tool with no annotations and no output schema, the description should say what comes back (the claimed task object?) and what happens on failure. It covers the selection semantics well but leaves the result and no-task-available case unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, so the schema already explains agent_id and gives a format example. The description adds no format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (claim) plus the resource and selection rule (highest priority pending task for this agent), which is more precise than a bare 'claim task'. It does not explicitly name a sibling like get_task or list_tasks as the non-mutating alternative, so the differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says who the claim is for ('this agent') but gives no when-to-use guidance, no prerequisites (e.g., must an agent be registered, is there a queue to drain first), and no exclusions relative to get_task/list_tasks. An agent must infer the invocation context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_taskA
Mark an in_progress task as completed with output results.
| Name | Required | Description | Default |
|---|---|---|---|
| result | No | Output payload or summary result. | |
| task_id | Yes | ID of the task to complete. | |
| agent_id | Yes | Agent ID that held the claim. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the state transition (in_progress -> completed) and that output results accompany it, but says nothing about idempotency, error behavior when the task is not in_progress or not claimed by the caller, or what happens to the agent's claim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the state precondition and outcome are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-transition mutation tool with no annotations and no output schema, the essential precondition is present but the edge-case behavior an agent needs (what if the task is not in_progress, is the result required, what is returned) is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents task_id, agent_id, and the result payload. The description adds nothing beyond a loose reference to "output results," making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a concrete verb+resource ("Mark an in_progress task as completed") and names the resulting state, which is more informative than the bare tool name. It does not, however, distinguish itself from the sibling fail_task, which is the nearest alternative for ending a task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "in_progress task" implies a precondition and thus when the tool applies, but there is no explicit routing guidance between this and fail_task, nor any statement about what happens if the task is in another state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskC
Create a new task in pending state on the swarm task board.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short, actionable task title. | |
| metadata | No | Optional metadata dictionary for task context. | |
| priority | No | Task priority (higher number = higher priority). Default is 1. | |
| description | No | Full task details and instructions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the new task starts in 'pending' state, but says nothing about permissions, whether duplicate titles are allowed, what identifier is returned for later claim/complete calls, or whether the task is immediately visible to other agents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action and the resulting state with no filler. Nothing is wasted or back-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with no annotations and no output schema, so the description should cover the safety/mutation profile and at least hint at the return value (e.g. a task id needed by claim_task and complete_task). Neither is present, leaving a meaningful gap for an agent wiring a workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema, and the description adds no parameter-level detail beyond the initial state. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (create) plus resource (task) and the resulting state (pending on the swarm task board), which is more informative than the bare name. It does not explicitly contrast itself with siblings like claim_task or complete_task, but the create-vs-transition distinction is inferable from the name and description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus alternatives such as claim_task or list_tasks, and no prerequisites (e.g. does the task need an existing board, is auth required). Usage is only implied by the verb 'create'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fail_taskB
Mark an in_progress task as failed with an error description.
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | Failure reason or error traceback. | |
| task_id | Yes | ID of the task. | |
| agent_id | Yes | Agent ID that held the claim. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a state mutation but does not disclose the resulting state, whether the operation is reversible, permission requirements, or that the 'error' parameter is optional per the schema despite the wording 'with an error description' suggesting it is supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the operation and its precondition are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple state-transition tool with complete parameter documentation, the description covers the core action and precondition. It still omits post-condition behavior (what status the task ends in, whether a follow-up is needed) and permission expectations, which matter for a mutation with no annotations or output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented (error, task_id, agent_id). The description only restates the error argument and adds no format, constraint, or interaction detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('mark ... as failed') and resource ('task'), plus a precondition ('in_progress') that distinguishes it from complete_task and create_task. It does not explicitly name a sibling for routing, but the fail/complete contrast is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in_progress task' implies the task must already be claimed before failing, which is useful implied guidance. However, there is no explicit when-to-use statement, no statement about what happens if the task is not in_progress, and no comparison to complete_task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_statusA
Get real-time summary metrics of all swarm tasks and active agents.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does add one genuine behavioral trait, 'real-time', indicating live rather than cached data, but says nothing about permissions, rate limits, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every phrase earns its place by naming the resource and the returned content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should say more about what the returned summary contains or its format; it only gestures at 'summary metrics'. Adequate for a trivial zero-param read, but thin on what an agent actually receives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline is 4. The empty schema is consistent with the description, which implies a no-argument status read.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (board status) and specifies the payload: real-time summary metrics of all swarm tasks and active agents. It is clearly distinguishable from the per-task siblings, though it never names or contrasts with them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the aggregate 'summary metrics of all swarm tasks' framing suggests a dashboard/overview use case as opposed to the per-task CRUD siblings. There is no explicit when-to-use or when-not-to-use statement, and no alternative tool is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskA
Retrieve complete task details, status, and results by task ID.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID to inspect. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. "Retrieve" strongly implies a read-only, non-destructive operation and it names the returned content (details, status, results), but it omits any auth/permission requirements, error behavior for invalid IDs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb, resource, and key are ordered naturally. It is efficient, though it is minimal rather than richly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description adequately conveys what is returned (details, status, results). Only edge-case behavior (e.g., unknown ID) is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single task_id parameter is documented in the schema, so the baseline is 3. The description's "by task ID" merely restates the schema rather than adding format or sourcing detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (task details, status, and results) scoped by task ID. It is clearly distinguishable from create_task/claim_task/complete_task/fail_task, though it does not explicitly name a sibling to differentiate from list_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"by task ID" implies the tool is used once an ID is known, but there is no explicit guidance on when to use it versus list_tasks (to discover IDs) or get_board_status. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksB
Query tasks from the board with optional filtering by status and agent.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tasks to return. Default 50. | |
| status | No | Filter by status: 'pending', 'in_progress', 'completed', 'failed'. | |
| agent_id | No | Filter by claimed_by agent ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Query' implies a safe read, but it never confirms read-only semantics, says nothing about pagination, result ordering, or the default limit of 50 that the schema itself only partially exposes. For a listing tool with zero annotation coverage, this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the core action precedes the optional modifiers. Nothing in it is redundant or wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read tool with all three parameters documented in the schema and no output schema to explain, so the bar is modest. Still missing is anything about default limit behavior, pagination, or result ordering, which matters for a listing tool an agent may call repeatedly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (limit, status, agent_id) is already documented in the schema, including the accepted status values. The description names two of the three filters but adds no format, syntax, or interaction detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Query') and resource ('tasks from the board'), which clearly reads as a read/list operation. It does not explicitly differentiate itself from get_task or get_board_status, but the verb+resource combination is unambiguous enough that an agent can place it among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'with optional filtering by status and agent' implies the tool is for browsing/filtering a task collection, which implicitly contrasts with single-task retrieval via get_task. However, it never states when to use this over get_task or get_board_status, and there are no exclusions or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.0- First observed
claim_task - First observed
complete_task - First observed
create_task - First observed
fail_task - First observed
get_board_status - First observed
get_task - First observed
list_tasks
TDQS
Scored across 7 tools
Each tool maps to a distinct action in the task lifecycle: create, claim, complete, fail, get, list, and board status. The boundaries between query tools (get_task for a single ID vs list_tasks for filtered sets) and mutation tools are clear, so an agent can select confidently.
Every tool follows a consistent verb_noun snake_case pattern (create_task, claim_task, complete_task, fail_task, get_task, list_tasks, get_board_status). No deviations in style or casing.
Seven tools is well-scoped for a swarm task board, with each tool earning its place across create/read/state-transition operations. No redundancy or filler.
The core task lifecycle (create, claim, complete, fail) plus read/query operations is fully covered. Minor gaps exist, such as releasing/unclaiming a task or updating task fields (priority, metadata), but agents can work around these.
Maintenance
Related MCP Connectors
Durable agent-to-agent handoffs and shared scratchpad for multi-agent workflows.
- llm-busOAuthcom.llm-bus
Coordinate multiple AI agents over MCP: atomic claims, leases, shared ledger, handoffs, tasks.
Task management for teams building with AI agents. Agents claim tasks and report progress.
Shared task layer for AI agents: tasks, handoffs and decisions that persist across tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn atomic key-value store for AI agent coordination, ensuring agents always work with the latest state.524 PyPIMIT
- AlicenseNot gradedqualityCmaintenanceCoordinates parallel AI coding agents by providing task ownership, scoped file locks, handoffs, and verification workflows.MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to decompose a goal into a dependency-aware task tree, atomically claim and update tasks across parallel subagents in dependency waves, and coordinate through a shared progress board with paged notes and crash-safe, lock-protected persistence.MIT
- AlicenseNot gradedqualityAmaintenanceLocal OS for your AI Agents fleets. โโโโโโ- Enables AI agents to coordinate through a durable local board with shared state, ticket lifecycle, evidence-based approvals, and journal-woken handoffs.2Apache 2.0