Coordinates concurrent agents with SQLite-backed claims, version checks, release outcomes, and waitable resource locks.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent ā or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag ā we're steadily working through the catalog.
š” Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Agenthold.
agenthold_registerRegister yourself and receive a unique agent ID. Must be called once before using `agenthold_claim` or `agenthold_release`.
agenthold_claimClaim exclusive access to a resource before modifying it. Requires a registered `agent_id`.
agenthold_releaseRelease your claim with an explicit outcome describing what you did. The outcome is preserved in the free-state record and shown to the next claimant so they don't act on stale assumptions. Requires a registered `agent_id`.
agenthold_statusCheck whether a resource is available or currently claimed. Does not require registration.
agenthold_waitWait for a claimed resource to become available. Blocks the agent turn until the holder releases, or the timeout expires.
The edobusy/agenthold MCP server provides coordination primitives for agents that may work on the same resource at the same time. It is intended to prevent one agent from overwriting another agent's work without detecting the conflict. The server uses SQLite as its backing store and maintains versioned state, claims, and an append-only audit log.
Resources can represent workspace files or opaque custom names. File resources use canonical URIs such as file://default/path/to/file, while custom resources use custom://name. Bare paths are also accepted and resolved against a configured workspace. Equivalent path forms are normalized so agents do not accidentally coordinate on separate keys for the same resource.
The edobusy/agenthold MCP server combines exclusive claims with optimistic concurrency control. An agent first registers to receive an identifier, then claims a resource before changing it. If another agent already holds the claim, the response reports that the resource is busy. The waiting agent can choose another resource or use the wait tool until the claim is released or a timeout occurs.
Each stored value has a version. A write based on an older version is rejected and includes the current value, allowing the agent to reread state, recalculate, and retry. This approach avoids keeping a database lock open while an agent performs network requests or generates text.
When releasing a resource, the agent supplies an outcome describing what happened. That outcome remains available to a later claimant, helping the next agent understand prior work instead of relying on stale assumptions. Claim responses can also include information about previous deletion, movement, abandonment, or expiration activity when relevant.
Install the Python package with pip install agenthold or uv pip install agenthold. An MCP client can launch the server with the agenthold command. The example configuration passes --db with a path for the SQLite database.
Without workspace flags, the process creates a default workspace based on its current working directory. Additional workspaces can be supplied with repeatable --workspace name=path options, allowing one process to coordinate resources across separate codebases. The database location and workspace paths should be selected consistently for all clients that need to share state.
The server exposes five MCP tools:
agenthold_register creates an agent identity. Registration is required before claiming or releasing resources.agenthold_claim requests exclusive access to a resource and returns its version when successful.agenthold_release ends a claim and records an explicit outcome.agenthold_status reports whether a resource is available or claimed and does not require registration.agenthold_wait blocks until a claimed resource becomes available or its timeout expires.The edobusy/agenthold MCP server is coordination infrastructure, not an agent orchestration framework. It supplies shared state and resource ownership while the surrounding framework remains responsible for the actual work and retry behavior.
Agents must register before using claim or release. A claim controls access to the named resource, but the agent still needs to perform the underlying file or state modification through its other tools. For optimistic concurrency control to help, agents must use the returned version and respond to conflicts by rereading and retrying.
Path traversal and dot segments are rejected. On case-insensitive platforms, file paths are matched without case distinctions; custom resource names remain case-sensitive.
Factual signals from GitHub, npm, and our automated checks ā not a rating.
No reviews yet ā be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/edobusy-agenthold)<a href="https://allmcps.com/mcp/edobusy-agenthold"><img src="https://allmcps.com/api/badge/edobusy-agenthold?style=directory" alt="Agenthold on AllMCPs" /></a>