Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct agent lifecycle operation: start, resume, fork, send/steer guidance (with send covering idle follow-ups and steer specifically targeting in-flight turns), interrupt, status, list, events, wait, result, request resolution, goal setting, and archiving. While agent_send and agent_steer are closely related, their descriptions clearly differentiate when each applies, preventing ambiguity.

    Naming Consistency5/5

    All tools follow a consistent agent_<verb> pattern (agent_start, agent_fork, agent_status, etc.) with the exception of server_info, which appropriately breaks the pattern as it targets the server rather than agents. The naming is uniform, predictable, and uses lowercase snake_case throughout.

    Tool Count5/5

    15 tools is a well-scoped set for a comprehensive agent management server. Each tool covers a necessary operation without redundancy, and the count sits comfortably within the typical effective range for a domain-specific MCP server.

    Completeness5/5

    The lifecycle is fully covered: creation (start, fork, resume), control (send, steer, interrupt, goal_set), observation (status, list, events, wait, result), request resolution (request_resolve), and cleanup (archive). Server-level info is also provided, leaving no obvious gaps for effective fleet management.

  • Average 4/5 across 12 of 15 tools scored. Lowest: 2.9/5.

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

    • No community issues in the last 6 months
    • 13 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.

  • Add a glama.json file to provide metadata about your server.

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

  • Add related servers to improve discoverability.

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

  • Behavior3/5

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

    Annotations already cover read-only, idempotence, and destructive behavior. The description adds that the goal is persistent and attached to a worker thread, but it does not clarify important behaviors such as whether null values clear fields or how an update interacts with an existing goal.

    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 a single, focused sentence with no filler. It is concise and front-loaded, though it sacrifices useful detail for brevity.

    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?

    With four parameters, no schema descriptions, no output schema, and a family of closely related sibling tools, the one-sentence description is too thin. Missing parameter semantics and usage context make it incomplete for reliable tool selection and invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, and the description provides no meaning for status, agentId, objective, or tokenBudget. An agent must rely solely on parameter names, which is insufficient for correctly invoking this tool.

    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 uses a specific verb ('Set or update') and identifies the resource ('persistent app-server goal attached to a worker thread'). It is clear enough to distinguish this from a message-send or status-check tool, though it does not explicitly name sibling alternatives.

    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 'persistent app-server goal' implies when this tool is relevant, but there is no explicit guidance on when to use it versus related tools like agent_steer or agent_send. No exclusions or alternative conditions are provided.

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

  • Behavior3/5

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

    It discloses an additive operation ('append') scoped to the worker's in-flight turn, which is useful beyond the annotations. However, it does not describe failure behavior when no active turn exists or whether guidance is applied synchronously.

    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 entire description is one front-loaded, waste-free sentence that states the action and scope immediately. The turn/steer mechanism detail is extra but not padded.

    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?

    Although the tool is simple (two required string parameters), the description omits prerequisites such as requiring an existing active turn, error conditions, and expected return behavior, and there is no output schema to fill that gap.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0% and the description never explicitly maps `prompt` to 'guidance' or `agentId` to the worker. The mention of 'its expected active turn id' is confusing because no turn id parameter exists in the schema, leaving parameter relationships under-specified.

    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 names a specific verb and resource: 'Append guidance to the worker's current in-flight turn.' This clearly differentiates from starting, resuming, or interrupting an agent, though it never names sibling tools 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?

    The phrase 'current in-flight turn' implies the tool is for an existing active turn and for adding guidance mid-turn, but the description does not state when to prefer this over agent_send or agent_interrupt, nor does it give exclusions.

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

  • Behavior3/5

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

    Annotations already cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false, openWorldHint=true). The description adds useful context that the tool 'loads and subscribes' to a thread, clarifying the state change involved. It does not disclose further behavioral details like event subscription semantics or failure handling, but given the annotations, it provides moderate additional transparency.

    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 a single, well-structured sentence that front-loads the action and resource. Every word contributes meaning, with no redundant or vague phrasing – an example of good conciseness.

    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?

    Given the tool has 3 parameters (one nested), no output schema, and only partial schema descriptions, the description is too brief. It does not explain what resumeOptions does, what happens after resuming (e.g., can the agent immediately send messages?), or any prerequisites or side effects. An agent would need to inspect the schema closely and infer behavior, making the description incomplete for confident use.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is only 33% – only resumeOptions has a description. The description itself does not explain threadId or label at all, even though threadId is required. With low coverage, the description fails to compensate, leaving the agent without clear meaning for the key parameters.

    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 clearly states the verb ('load and subscribe') and resource ('persisted Codex thread'), and the context ('after an MCP-server restart or from another Codex client') conveys that it resumes an existing thread, distinguishing it implicitly from sibling tools like agent_start or agent_fork. However, it does not explicitly name any alternative tools, which keeps it from a perfect score.

    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 description gives a clear usage context (after restart or from another client), which implies when to use this tool. It does not, however, explicitly state when not to use it or name alternative tools such as agent_start for starting new threads, so the guidance is implied rather than explicit.

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

  • Behavior3/5

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

    Beyond the annotations, it discloses idle no-op behavior, which is useful and consistent with idempotentHint. However, it does not describe concrete effects of an interruption (e.g., whether work is lost or whether agent_resume is needed). With annotations already marking it destructive and not read-only, the bar is partially met.

    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 tightly written sentence states the action and key edge case with no filler. The most useful scoping information is front-loaded.

    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 output schema and annotations that already convey read-only/destructive/idempotent traits, the description covers the core usage and the idle edge case. It could mention how to reverse or recover from an interrupt, but this is not essential for invoking the tool correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0% and the description does not mention agentId at all, so it must compensate for the missing parameter guidance. The parameter name is self-explanatory, but no additional semantics or format constraints are given.

    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 uses a specific verb ('Interrupt') and resource ('a worker's active turn'), making the tool's action immediately recognizable and distinct from sibling tools like agent_start and agent_resume. It also clarifies the operational scope (active vs idle), so purpose ambiguity is minimal.

    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?

    It implies usage when the worker is active and warns that idle calls are no-ops, but it never names alternatives or explicit when-to-use vs. when-not-to-use cases. The guidance is context rather than routing.

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

  • Behavior3/5

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

    Annotations already disclose mutation, destructiveness, and idempotence. The description adds the precondition about active turns being interrupted first, which is useful. However, it does not explain what 'archive' does to the thread's state, such as recoverability, removal, or disposition, leaving a behavioral gap for a destructive operation.

    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 a single front-loaded sentence with no filler. Every clause earns its place: the action, target, and usage precondition all appear in the first sentence.

    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 one-parameter, optionally destructive tool, the description covers the main precondition but leaves the post-condition undefined—what happens after archiving and whether it is reversible. No output schema exists, so a sentence about expected outcome or state would improve completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0% and the description does not mention agentId at all, so it adds no meaning beyond the bare schema property. The parameter is simple and self-descriptive, but with no schema description the description should have at least clarified that agentId identifies the idle worker thread to archive.

    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 states a specific action ('Archive') on a specific resource ('idle worker thread') and adds a scope restriction ('idle'), which separates it from sibling tools like agent_interrupt. It is concise and unambiguous.

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

    Usage Guidelines4/5

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

    It says the tool applies to idle workers and explicitly warns that active turns must be interrupted first, effectively directing an agent to agent_interrupt when a thread is active. It does not name the alternative tool explicitly, but the guidance is actionable.

    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?

    Annotations already convey the mutation profile (readOnly=false, idempotent=false), and the description adds meaningful context: the fork is 'independent' and an optional prompt triggers immediate work. This helps the agent anticipate that forking can spawn active work, though details like whether the fork returns immediately or waits are not disclosed.

    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?

    Two tightly written sentences, with the core operation front-loaded and the optional prompt behavior stated second. Every word contributes; there is no filler or repetition of schema details.

    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?

    For a tool with six parameters, no required fields, and no output schema, the description is too sparse to guide correct invocation. It omits how the source agent/thread is selected, what label means, and what the caller should expect as a result of the fork.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is only 33%, and the description does not meaningfully clarify the six parameters. 'Optional prompt starts work immediately' touches on the prompt parameter, but the crucial sourceAgentId vs sourceThreadId distinction, label purpose, and forkOptions/turnOptions semantics are left unexplained.

    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 uses a specific verb ('Branch') and names the exact resource ('a managed agent or persisted Codex thread') plus the outcome ('a new independent worker'). This clearly distinguishes agent_fork from lifecycle siblings like agent_start or agent_resume.

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

    Usage Guidelines4/5

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

    The description establishes clear context: use this when you already have a managed agent or persisted Codex thread to branch, and include an optional prompt to start work immediately. It does not explicitly name alternatives or state when not to use the tool, but the source precondition is clear.

    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?

    The description discloses important non-obvious behavior beyond annotations: auto mode steers an active turn or starts a follow-up when idle, and delivery is async ('returns once delivered, not once acted'). This adds useful context beyond the readOnly/idempotent annotations, though it doesn't detail edge cases like errors or worker state transitions.

    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?

    Three succinct sentences, front-loaded with the action. Every sentence adds distinct information: mode behavior, explicit mode guidance, and async delivery semantics. No filler or redundancy.

    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 tool with 4 parameters, a nested object, and no output schema, the description covers the most important behavioral aspects but omits full mode semantics and turnOptions usage. The agent is left to infer what 'steer' vs 'followup' explicitly mean and what additional turn/start fields are acceptable. It is adequate but not fully complete.

    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 coverage is only 25%, so the description must compensate. It does add meaning for mode by explaining auto mode behavior and the explicit-mode heuristic, but it doesn't explain prompt content expectations, turnOptions semantics beyond schema, or agentId resolution. The description helps but leaves significant parameter ambiguity to the agent.

    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 and resource: 'Send guidance to a worker.' It clearly describes the core action and distinguishes the delivery semantics from waiting, but does not explicitly differentiate itself from sibling tools like agent_steer or agent_topup beyond the mode discussion.

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

    Usage Guidelines4/5

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

    Provides actionable guidance: use explicit mode when the distinction matters, and poll agent_status rather than using agent_wait. It clearly tells the agent what to do after calling the tool, but it could more explicitly name sibling alternatives and when agent_send is preferred over agent_steer or agent_followup.

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

  • Behavior3/5

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

    Annotations already communicate readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the mutation profile is known. The description adds that decision is a shorthand for approvals and response is used otherwise, but it does not disclose side effects, authorization needs, or consequences beyond resolving the pending request.

    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?

    Two sentences lead with the tool's purpose, then provide routing detail without filler. The literal '{decision}' placeholder is an unresolved template artifact that slightly undermines precision, but the overall structure is compact and front-loaded.

    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 tool with three parameters and no output schema, the description covers the core invocation logic and the required requestId through the schema. It does not describe return values, error conditions, or how to discover the 'current app-server schema,' leaving some operational ambiguity for the agent.

    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 coverage is only 33%, and the description compensates by clarifying the core parameter split: decision applies to command/file approvals, while response is the exact object for other request types. It leaves '{decision}' as an unresolved placeholder, but the schema's decision description lists common values, making the combined picture usable.

    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 opens with 'Answer a pending app-server approval, permission, user-input, dynamic-tool, or MCP elicitation request,' which names a specific verb and a clear resource class. This distinguishes the tool from sibling messaging/steering tools like agent_send and agent_steer by focusing on resolving pending app-server requests.

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

    Usage Guidelines4/5

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

    The description gives explicit routing guidance: 'For command/file approvals, decision is shorthand' and 'For other request types, pass the exact response object.' This tells the agent which parameter to use in which situation, though it does not explicitly name sibling tools or state exclusions.

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

  • Behavior3/5

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

    The description aligns with the readOnlyHint annotation by using 'Check,' and adds context by naming the specific server aspects inspected. It does not mention return format, pagination, or any operational caveats, but for a read-only info tool with annotations, this is acceptable.

    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 terse sentence that front-loads the verb and precisely enumerates the scope. Every word earns its place and there is no filler or redundancy.

    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 parameterless health-check tool, the description adequately identifies what is inspected and confirms the read-only nature. Since there is no output schema, a brief note on the response shape would improve completeness, but it is not essential for correct invocation.

    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 input schema has zero parameters, so the baseline of 4 applies. No parameter documentation is needed because there are no parameters to explain.

    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 states a specific verb ('Check') and exact resource scope: the Codex app-server process, worker counts, and unscoped pending server requests. This clearly distinguishes it from the sibling agent_* tools, which focus on agent lifecycle operations rather than server infrastructure.

    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 description implies a diagnostic read-only use case, and the sibling list makes its infrastructure-focused role apparent. However, there is no explicit statement about when to prefer this tool over alternatives or any exclusions.

    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?

    Annotations already mark readOnlyHint=true, and the description adds useful non-obvious behaviors: 'Returns immediately' warns the agent this is not a long-poll, and 'Data is omitted by default to avoid flooding the supervisor context' explains the default includeData behavior and its rationale. No contradiction with annotations.

    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?

    Four short sentences, each adding distinct value: operation, latency behavior, default payload behavior, and usage guidance. The most important identifying information is front-loaded in the first sentence, and there is no filler.

    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 read-only pagination tool, this covers operation, default data omission, immediate return, and when to use it. Since there is no output schema, the description could have described the event shape a bit more, but 'reduced worker events' plus the agent_status tie-in gives the agent enough context to invoke it correctly.

    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?

    With 0% schema description coverage, the description must compensate. It does map to key parameters: 'bounded page' implies limit, 'after a cursor' implies afterCursor, and 'Data is omitted by default' clarifies includeData. However, the required agentId parameter is never mentioned, and cursor semantics are left vague, so compensation is incomplete.

    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 opens with a specific verb and resource: 'Read a bounded page of reduced worker events after a cursor.' It also differentiates from the sibling agent_status by framing itself as the detail-follow-up step, so an agent can tell this tool apart from related status/result tools.

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

    Usage Guidelines4/5

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

    It explicitly names the triggering context: 'Use this for detail after agent_status shows something worth inspecting.' This gives clear when-to-use guidance and points to the relevant sibling. It does not spell out when not to use it or list other alternatives, so it stops short of a 5.

    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?

    Annotations already declare readOnlyHint, openWorldHint=false, and idempotentHint, so the description's job is lighter. It adds useful behavioral context beyond the annotations: the call returns immediately, costs one call regardless of fleet size, and produces a lean per-worker report. This is consistent with the annotations and adds operational traits an agent would want to know.

    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?

    Three sentences, each earning its place: the first states the action and output, the second covers default invocation and cost, and the third gives routing guidance. The key information is front-loaded and there is no filler.

    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?

    Although there is no output schema, the description enumerates exactly what the report contains (status, done, final message, approval blocker, token spend), so the agent understands the return shape. Combined with the schema and annotations, everything needed to call the tool correctly and interpret its result is present.

    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?

    All three parameters are fully documented in the schema (100% coverage), so the baseline of 3 applies. The description adds a bit of extra semantic context by noting the no-arguments sweep and the 'costs one call' property, but it does not substantially extend the schema definitions.

    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?

    States a specific verb and resource ('Collect worker results') and immediately enumerates the report contents, so an agent knows exactly what the tool returns. It also explicitly differentiates itself from the sibling agent_status by naming the condition that selects one over the other.

    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?

    Gives explicit when-to-use guidance: calling with no arguments is described as the normal fleet sweep, and the description says to prefer this over agent_status unless plan/diff/event detail is needed. This is direct routing with no ambiguity.

    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?

    Annotations already declare readOnlyHint=true, covering the safety profile. The description adds behavioral context beyond annotations: the snapshot is 'non-blocking' and captures either 'final or live message,' plus pending requests, which clarifies what state the worker could be in. It doesn't mention staleness or refresh behavior, but 'snapshot' implies a point-in-time view.

    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?

    Two tight sentences: the first lists the snapshot contents, the second routes to the alternative tool. No filler, and the key scoping 'one worker' is front-loaded.

    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?

    The description covers what the tool does, how it behaves, and when to use it, with annotations covering read-only safety. Given one parameter, no output schema, and a modest complexity level, nothing critical 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?

    With schema description coverage at 0%, the description must compensate for the undocumented agentId. It does imply that the parameter identifies 'one worker' but never explicitly connects agentId to that worker or explains where to obtain it. For a single self-explanatory parameter this is minimally adequate but not rich.

    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 specifies a precise purpose: a detailed non-blocking snapshot of one worker, enumerating the exact contents (state, message, plan, diff, usage, pending requests). It clearly distinguishes itself from the sibling agent_result, leaving no ambiguity about what this tool does.

    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?

    Explicit guidance: 'Use agent_result instead when you just want results or are checking more than one worker; reach for this when a single worker needs a closer look.' This names the alternative and states the conditions for selecting either tool, leaving nothing to inference.

    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?

    Annotations already declare readOnlyHint=true; description adds behavioral specifics: returns immediately, one compact line per worker, no full messages. It doesn't mention error cases or pagination, but for a zero-param list tool this is adequate.

    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?

    Three sentences with no wasted words; the core action is front-loaded, and subsequent sentences add genuinely useful behavioral and routing details.

    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?

    With no output schema, the description covers the return shape (compact line per worker, no full messages) and the scope (all workers incl. Codex descendants). For a simple read-only list, nothing an agent needs is missing.

    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 has zero parameters and 100% schema coverage, so there is nothing for the description to add beyond the empty input schema. With no parameters, a baseline of 4 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?

    States a specific verb and resource: 'List every worker known to this MCP process.' It explicitly distinguishes from agent_result and mentions Codex-created descendant agents, so an agent can tell it apart from siblings without opening schemas.

    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 tells when to use: 'Use this to see the shape of the fleet' and when not to: 'use agent_result when you want their output.' This is direct routing guidance to an alternative tool.

    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?

    The description richly discloses async behavior beyond the annotations: 'Returns as soon as the turn is accepted; the worker keeps running in the background whether or not you watch it.' It also explains that the worker cannot see the conversation and that direct fields take precedence over threadOptions/turnOptions pass-through fields. No contradiction with annotations exists.

    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?

    Every sentence in the description earns its place: it front-loads the core dispatch behavior, then gives usage patterns, an explicit exclusion, a prompt-writing requirement, and pass-through semantics. It is dense but not bloated, and the structure follows a logical decision order.

    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 complex 19-parameter tool with no output schema, the description covers the key behavioral contract, usage pattern, prompt requirements, and pass-through precedence. It does not explicitly describe the return payload beyond 'returns as soon as the turn is accepted,' but it points to agent_result for collection, making the missing detail a minor gap rather than a critical one.

    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 coverage is 74%, so the schema already documents most parameters. The description adds meaningful parameter context by explaining that the prompt must be a complete, self-contained task including acceptance criteria, and by clarifying that threadOptions and turnOptions pass through additional fields with direct fields taking precedence. It does not detail the few undocumented parameters, but the schema and general guidance are sufficient.

    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 opens with a specific verb and resource: 'Dispatch a Codex worker: creates an independent thread and starts its first turn.' It clearly distinguishes this from sibling tools by emphasizing that this is a background start operation and explicitly routing collection to agent_result and warning against agent_wait.

    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 gives explicit when-to-use guidance: 'issue several in one message to run a fleet... then go do other work and collect with agent_result. Do not follow this call with agent_wait.' It also explains the prerequisite that the prompt must be self-contained because the worker cannot see the conversation, which is critical for correct invocation.

    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?

    The description discloses significant behavioral traits beyond the annotations: it blocks the entire turn, workers do not need the call to stay alive, serial waiting multiplies the stall, timeout is not a failure, and the return value is a lean report for ready and still-running workers. The idempotentHint and readOnlyHint are consistent with the description, and this extra context is exactly what an agent needs before invoking a blocking call.

    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 dense but every sentence earns its place: the core blocking behavior is front-loaded, usage rules follow immediately, the agentIds guidance is explicit, and the return behavior closes the loop. There is no filler or repetition of the schema's plain parameter descriptions.

    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 blocking tool with no output schema, the description covers the essential operational context: when to use it, what happens on timeout, how to batch workers, and what the report contains. The main gap is the undocumented afterCursor parameter, which could matter when paginating events/results over long waits, and which neither the schema nor the description explains.

    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?

    With 83% schema coverage, the schema already documents most parameters, so the baseline is 3. The description adds value on top by explaining the semantic constraint around agentIds ('always pass every outstanding worker'), the distinction between agentId/agentIds, and the meaning of timeout behavior ('a timeout is not a failure'). However, afterCursor remains undocumented in both the schema and the description, preventing a 5.

    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 names a specific verb ('Block'), a specific resource ('watched workers'), and the defining behavior ('until ... ready'). It also directly distinguishes itself from sibling agent_result ('poll with agent_result instead'), so an agent can tell it apart without opening the sibling schemas.

    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 gives explicit when-to-use ('only once you have run out of other work'), an explicit alternative with a condition ('while you still have anything to do, dispatch it and poll with agent_result'), and a clear best-practice for parameter usage ('always pass every outstanding worker in agentIds rather than waiting on one at a time'). This fully routes the agent's decision.

    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

codex-app-server-mcp MCP server

Copy to your README.md:

Score Badge

codex-app-server-mcp 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/j-pollack/codex-app-server-mcp'

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