Skip to main content
Glama

AgentMesh MCP (Lite Edition)

License: MIT Protocol: MCP Python: >=3.10

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:

  1. Collision & Race Conditions: Multiple agents attempt to tackle the same problem or modify the same files simultaneously, destroying each other's work.

  2. Zombie Locks: If an agent times out or crashes during an API call, tasks get stuck indefinitely.

  3. 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 IMMEDIATE transactions.

  • โšก 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) over stdio.

  • ๐Ÿ“Š 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

create_task

title, description, priority, metadata

Adds a task to the queue in pending state

claim_task

agent_id

Atomically claims the highest priority pending task

complete_task

task_id, agent_id, result

Marks task as completed with output payload

fail_task

task_id, agent_id, error

Marks task as failed with error details

get_task

task_id

Retrieves complete task state and payload

list_tasks

status, agent_id, limit

Queries tasks with status and worker filters

get_board_status

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 tools
claim_taskB

Atomically claim the highest priority pending task for this agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesUnique identifier of the claiming agent (e.g., 'researcher-agent-1').

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
resultNoOutput payload or summary result.
task_idYesID of the task to complete.
agent_idYesAgent ID that held the claim.

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesShort, actionable task title.
metadataNoOptional metadata dictionary for task context.
priorityNoTask priority (higher number = higher priority). Default is 1.
descriptionNoFull task details and instructions.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
errorNoFailure reason or error traceback.
task_idYesID of the task.
agent_idYesAgent ID that held the claim.

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID to inspect.

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tasks to return. Default 50.
statusNoFilter by status: 'pending', 'in_progress', 'completed', 'failed'.
agent_idNoFilter by claimed_by agent ID.

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 7 tool updatesv1.0.0
    • First observedclaim_task
    • First observedcomplete_task
    • First observedcreate_task
    • First observedfail_task
    • First observedget_board_status
    • First observedget_task
    • First observedlist_tasks

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An atomic key-value store for AI agent coordination, ensuring agents always work with the latest state.
    5
    24 PyPI
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local 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.
    2
    Apache 2.0