Skip to main content
Glama

Server Quality Checklist

83%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.4.3

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: register sets up identity, claim acquires exclusive access, release relinquishes it, status checks availability, and wait blocks for availability. There is no overlap or ambiguity between these functions, making it easy for an agent to select the right tool for each step in the coordination workflow.

    Naming Consistency5/5

    All tools follow a consistent 'agenthold_' prefix with descriptive action names (register, claim, release, status, wait) in snake_case. This pattern is uniform across all five tools, providing predictability and readability without any deviations or mixed conventions.

    Tool Count5/5

    With 5 tools, the server is well-scoped for its purpose of agent coordination and resource locking. Each tool earns its place by covering essential operations: setup (register), acquisition (claim), release (release), checking (status), and waiting (wait). This count is neither too sparse nor bloated, fitting the domain perfectly.

    Completeness5/5

    The tool set provides complete coverage for the agent coordination domain, covering the full lifecycle from registration to resource management. There are no gaps: agents can register, claim, check status, wait, and release resources, enabling seamless workflow without dead ends or missing critical operations.

  • Average 4.5/5 across 5 of 5 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 6 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • This repository includes a glama.json configuration file.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool releases a claim, notifies waiting agents via 'agenthold_wait', and includes possible responses with their meanings (e.g., 'released', 'already_free'). However, it lacks details on error handling beyond the 'error' response, such as retry logic or timeouts, which could be useful for an agent.

    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?

    The description is appropriately sized and front-loaded, starting with the core action and importance. Each sentence adds value: the first states the purpose, the second emphasizes necessity, the third explains consequences, the fourth covers edge cases, and the fifth details responses. However, the response explanations could be slightly more concise, as they list multiple outcomes without grouping them efficiently.

    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?

    Given the complexity of a coordination tool with no annotations and no output schema, the description is largely complete. It covers purpose, usage, behaviors, and responses, which compensates for the lack of structured output. However, it could improve by explicitly mentioning the tool's role in the sibling ecosystem (e.g., linking to 'agenthold_claim' for context) or detailing potential side effects more thoroughly.

    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 both parameters ('resource' and 'agent_id') with clear descriptions. The description adds no additional parameter-specific information beyond what the schema provides, such as examples or constraints. Thus, it meets the baseline of 3 by not compensating but not detracting from the schema's coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the specific action ('release your exclusive claim on a resource') and the resource type ('a resource'), distinguishing it from siblings like 'agenthold_claim' (acquire claim) and 'agenthold_wait' (wait for claim). It explicitly mentions the verb 'release' and the context of finishing edits, making the purpose unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit guidance on when to use this tool: 'when done modifying a resource' and 'if you claimed a resource but decided not to modify it, release it anyway.' It also specifies prerequisites ('You must register before calling this tool') and explains the consequences of misuse ('Holding claims longer than necessary blocks other agents'), offering clear when-to-use and when-not-to-use instructions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries full burden and does well by explaining the session-based nature ('for this session'), the one-time requirement, and that the returned agent_id serves as identity for subsequent operations. It doesn't cover error conditions or rate limits, but provides solid behavioral context.

    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?

    Front-loaded with the core purpose, followed by critical usage instructions. Every sentence earns its place: registration purpose, prerequisite warning, parameter guidance, session identity explanation, and usage restriction. No wasted words.

    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 registration tool with no annotations and no output schema, the description does well by explaining the session-based workflow, one-time requirement, and relationship to sibling tools. It could mention what happens on registration failure or the format of the returned agent_id, but covers the essential context.

    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 fully documents both parameters. The description provides examples ('e.g. 'editor-agent'', 'e.g. 'claude-sonnet-4-6'') that match the schema descriptions, adding minimal value beyond what's already structured. Baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the specific action ('Register yourself'), the resource ('receive a unique agent_id'), and distinguishes this from sibling tools by explaining it's a prerequisite for other agenthold tools. It goes beyond just restating the name to explain the registration function.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly states when to use ('call this once before using any other agenthold tool that requires an agent_id'), when not to use ('Do not call this more than once per session'), and mentions specific alternatives ('agenthold_claim and agenthold_release calls'). Provides clear sequencing guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden. It effectively discloses key behavioral traits: it's a read-only status check (implied by 'check'), describes the two possible response states with their meanings, and provides actionable next steps. It doesn't mention rate limits or error conditions, but covers the essential operational context.

    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?

    The description is efficiently structured with three sentences that each earn their place: purpose statement, usage context, and response interpretation. It's front-loaded with the core function and contains zero wasted words.

    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 single-parameter tool with no annotations and no output schema, the description provides excellent context: clear purpose, usage guidelines with sibling references, behavioral expectations, and response interpretation. The only minor gap is lack of explicit error case handling, but it's otherwise complete for this complexity level.

    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 the single 'resource' parameter. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., no additional examples or constraints). Baseline 3 is appropriate 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.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose with specific verbs ('check if a resource is available or currently claimed') and identifies the resource type. It distinguishes from siblings by focusing on status checking rather than claiming, registering, releasing, or waiting.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit guidance on when to use this tool ('to decide which resource to work on next when you have multiple options') and what to do based on the outcome (call agenthold_claim if available, work on different resource or call agenthold_wait if claimed). It clearly distinguishes from sibling tools by naming alternatives.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it blocks the agent's turn (no other actions possible), includes timeout handling with default values, explains response outcomes ('available' and 'timeout'), and warns about concurrency risks ('another agent may also be waiting'). It does not detail error cases or retry logic, but covers the core operational traits well.

    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?

    The description is appropriately sized and front-loaded, starting with the core purpose. Each sentence adds critical information (blocking behavior, usage warning, timeout details, response outcomes) without redundancy. It efficiently conveys necessary details in a structured manner.

    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?

    Given the tool's complexity (blocking wait with concurrency) and lack of annotations or output schema, the description does a strong job covering key aspects: purpose, usage, behavior, and outcomes. It explains the two possible responses but does not detail the response structure or error handling, leaving some gaps for a tool with no 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 the schema already fully documents both parameters (resource identifier and timeout with default). The description adds minimal value beyond the schema, only reiterating the timeout default and hint field on timeout. It does not provide additional semantic context or usage examples for parameters.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose with specific verbs ('wait for a resource to become available', 'blocks your turn') and distinguishes it from siblings by focusing on waiting rather than claiming, registering, releasing, or checking status. It explicitly mentions the resource constraint and timeout mechanism.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit guidance on when to use this tool ('Only use this when you need a specific resource and no other useful work can proceed without it') and when not to use it (implied by the warning about blocking). It also references the sibling tool agenthold_claim as the next step after availability, offering clear alternatives in the workflow.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden and comprehensively discloses behavioral traits: it explains the concurrency control mechanism (exclusive access), required preconditions (registration), usage patterns (claim right before modification, release after), and detailed response handling (claimed, already_claimed, busy with actions for each).

    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?

    The description is appropriately sized and front-loaded, starting with the core purpose and importance, followed by usage rules and response details. Every sentence earns its place by providing critical information without redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (concurrency control with no annotations and no output schema), the description is complete: it covers purpose, usage, parameters, behavioral outcomes, and integration with siblings, providing all necessary context for an agent to use it correctly.

    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?

    Schema description coverage is 100%, so the baseline is 3. The description adds value by providing context for the 'resource' parameter (e.g., 'filename as the resource identifier' with examples like 'intro.md'), reinforcing the schema's description, but doesn't significantly enhance the 'agent_id' parameter beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose with specific verbs ('claim exclusive access to a resource before modifying it') and distinguishes it from siblings by specifying it's for claiming resources before editing, unlike agenthold_register (for registration), agenthold_release (for releasing), agenthold_status (for checking status), and agenthold_wait (for waiting).

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It provides explicit when-to-use guidance ('call this before editing any file or shared resource when other agents may be working in the same environment'), when-not-to-use ('do not claim multiple resources in advance'), and alternatives ('work on a different resource, or call agenthold_wait'), with clear prerequisites ('must call agenthold_register first').

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

agenthold MCP server

Copy to your README.md:

Score Badge

agenthold MCP server

Copy to your README.md:

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/edobusy/agenthold'

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