Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools target distinct resource-action combinations (e.g., create_course vs. create_user vs. create_community_space). A few pairs like add_invite_users_community_space and add_user_seat_offering could be confused if descriptions are skimmed, but overall boundaries are clear.

    Naming Consistency3/5

    The majority follow a consistent verb_noun pattern (create_, get_, update_, delete_), but several outliers reduce clarity: 'deletes_user_group' (plural verb), 'make_affiliate', 'mark_as_complete', and the overly long 'review_submission_user_s_assessment_submission'.

    Tool Count2/5

    With 94 tools, the surface is very large for an MCP server. While the scope is broad (users, courses, community, promotions, affiliates, etc.), the number likely overwhelms agents and exceeds typical best practices for focused tool sets.

    Completeness3/5

    CRUD operations exist for many core resources, but notable gaps exist: no delete for users, courses, or promotions; no update for bundles or coupons; some resources only have read operations. This forces agents to work around missing lifecycle steps.

  • Average 3.7/5 across 94 of 94 tools scored. Lowest: 2.8/5.

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

    • No community issues in the last 6 months
    • 3 commits in the last 12 weeks
    • Last stable release on
    • 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

  • Behavior2/5

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

    Annotations already indicate write (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds minimal behavioral context—just stating 'Reset user progress' without elaborating on side effects (e.g., whether progress is permanently deleted or can be recovered). No contradictions with annotations are present.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise but includes redundant elements like the emoji and HTTP method line. The core information is front-loaded, but some text is repetitive (title appears twice). Could be streamlined.

    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 no output schema and a write operation with nested parameters, the description lacks detail on return values, status, or error handling. It does not clarify the effect of the 'units' parameter. Incomplete for an agent to fully understand behavior.

    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 100% with parameter descriptions. The description adds no additional meaning beyond what the schema provides (e.g., 'course or learning activity level' is already implied). Baseline 3 is 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 clearly states the verb 'reset' and the resource 'user progress', and identifies the scope as course or learning activity level. It includes the HTTP method and endpoint. However, it does not explicitly differentiate from closely related siblings like 'mark_as_complete' or 'get_user_progress'.

    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 offers no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, scenarios, or when not to use it. The sibling list includes other progress-related tools, but no comparative context is 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?

    Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=true. The description adds the HTTP method and endpoint but does not disclose additional behavioral details beyond what annotations provide.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is short but includes an emoji, method, and repeated title. It is front-loaded but could be more concise without repetition.

    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?

    No output schema exists, yet the description does not mention return values or side effects. The complex nested body object is not explained. The tool could benefit from more context about what happens after update.

    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 50%; the 'id' parameter has a description but 'body' does not. The description does not explain the body's structure or semantics, which is a significant gap given the complex nested object.

    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 tool updates a certificate (reissue) and uses the verb 'Update' with resource 'certificate'. However, it does not specify exactly which fields are updatable beyond the schema, and it repeats the title.

    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?

    No guidance is provided on when to use this tool versus alternatives (e.g., get_certificates, delete_certificate_revoke_invalidate). There is no mention of prerequisites or typical use cases.

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

  • Behavior2/5

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

    The description merely restates the update action and returns the resource. Annotations already indicate idempotence and non-destructiveness, but the description adds no extra behavioral context such as partial update behavior or authorization requirements.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is short but contains redundancy by repeating 'Update a user group' twice. The endpoint information is useful, but conciseness could be improved.

    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 complexity of the input schema with nested objects and no output schema, the description is incomplete. It mentions the returned resource but lacks details on error handling, validation, or behavior of optional fields.

    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 100% with detailed descriptions for all parameters. The tool description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is 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 clearly states the tool updates a user group and returns the updated resource. However, it does not differentiate itself from sibling tools like create_user_group or deletes_user_group.

    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?

    No guidance is provided on when to use this tool versus alternatives such as create_user_group or deletes_user_group. The description lacks context for appropriate usage.

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

  • Behavior2/5

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

    Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false). The description adds the clue 'WRITE · creates data' but no additional behavioral traits like error conditions or side effects. Minimal value beyond annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is short but contains redundant repetition of 'Add a user to a user group'. It could be more concise without the duplication, though it is efficiently structured overall.

    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 tool with two parameters and no output schema, the description covers the basic action but lacks details on idempotency, error handling, or use cases. Adequate but not comprehensive.

    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 100% with clear descriptions for both parameters. The description does not add extra meaning beyond the schema, so baseline 3 is 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 clearly states 'Add a user to a user group' with additional write hint and endpoint, making the action specific and distinguishable from sibling tools like 'remove_user_user_group' or 'add_user_seat_offering'.

    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?

    No guidance on when to use this tool versus alternatives, nor any prerequisites or conditions for adding a user to a group. It lacks context for appropriate usage.

    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 indicate readOnlyHint=false and destructiveHint=false, and the description states 'WRITE · creates data', which is consistent and adds basic context. However, beyond stating it creates data, it discloses no further behavioral traits (e.g., side effects, error scenarios, idempotency). With annotations already covering the core safety profile, the description adds minimal extra value.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is relatively short but contains redundant repetition of 'Enroll user to product'. The header line with method and endpoint is useful, but the main text could be streamlined. It earns its place but is not optimally concise.

    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?

    The tool has a complex nested body and no output schema, yet the description does not explain return values, error responses, or prerequisites. For a write operation, agents need to know what to expect on success or failure. The description is incomplete for effective use.

    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 all parameters well. The description adds 'regarding course, bundle, manual subscription', which hints at productType's enum values but is slightly inaccurate (schema uses 'subscription' not 'manual subscription'). It does not enhance understanding beyond the schema.

    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 'Enroll user to product' and mentions specific product types (course, bundle, subscription). This verb+resource combination is distinct from sibling tools like unenroll_user_product or add_user_seat_offering. However, it repeats the same phrase twice and does not explicitly differentiate from other enrollment-related siblings.

    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 provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. For example, it does not mention that the user must exist or that the product must be available. Without such context, an AI agent may misuse the tool.

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

  • Behavior2/5

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

    Annotations indicate non-readonly and non-destructive, but description adds no behavioral context beyond 'creates data'; lacks details on auth, rate limits, or failure handling.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Slightly repetitive ('Create community space' twice), but overall concise; uses a brief header line and a sentence about response.

    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?

    Provides response type but no output schema; missing context on error handling or prerequisites; adequate for a simple create tool.

    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 description adds no additional parameter meaning beyond schema; 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 it creates a community space, with a verb-resource combination ('Create community space') and distinguishes from sibling tools like update_community_space and delete_community_space via context.

    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?

    No guidance on when to use this tool versus alternatives; lacks explicit when-to-use or when-not-to-use instructions, though the simple nature of creation is implied.

    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 provide readOnlyHint, idempotentHint, and destructiveHint. The description adds HTTP method and path but no additional behavioral context (e.g., side effects, caching, rate limits).

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is three sentences, but the first line is redundant with annotations. The information is repeated in subsequent sentences. Could be more concise.

    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 getter with no output schema, the description does not hint at the type or structure of analytics data returned. The agent may need more context to interpret results.

    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 covers both parameters with descriptions. The description only repeats that ids are needed, adding no extra semantic value like format constraints or examples.

    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 it retrieves analytics for a learning activity by course id and learning activity id. It implicitly differentiates from siblings like get_analytics_course, but does not explicitly name alternatives.

    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?

    No guidance on when to use this tool versus other analytics or get tools. The mention of 'Reporting' is insufficient context for an agent to know when it's appropriate.

    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 declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds HTTP method and path, but no additional behavioral context beyond what annotations provide.

    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?

    Description is relatively concise with 4 lines, but the inclusion of 'Multiple seats' is slightly extraneous. Front-loaded with method and read-only hint.

    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?

    No output schema exists, and the description only says 'Returns the seat offering' without detailing the response structure. This is insufficient for a tool that returns a full object.

    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 has 100% coverage for the single parameter 'id'. Description reinforces the parameter meaning but adds no new details beyond the schema description.

    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 'Get' and the resource 'specific seat offering', and indicates the input is by ID. It implicitly distinguishes from the sibling 'get_seat_offerings' (plural) but the phrase 'Multiple seats' adds ambiguity.

    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?

    No guidance on when to use this tool versus alternatives (e.g., get_seat_offerings for listing). No exclusions or prerequisites mentioned.

    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 adds that the endpoint returns the updated resource and that it's a PUT operation. Annotations already indicate non-destructive, idempotent, and not read-only. The description does not elaborate on side effects, authorization needs, or rate limits. It adds minimal value beyond annotations.

    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 concise, consisting of a header line and two sentences. It front-loads key information (emojis, HTTP method, resource type). The header includes some redundant elements, but overall it is efficient and well-organized.

    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 complexity of the tool (many body parameters, nested objects, no output schema), the description is too brief. It does not clarify update semantics (e.g., partial vs full replacement), dependencies on other fields (e.g., access and collectionId), or expected behavior when omitting fields. The rich schema partially compensates, but the description lacks contextual completeness for a safe and correct invocation.

    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?

    The input schema has 100% description coverage, so the baseline is 3. The tool description does not add any parameter-specific details beyond what the schema already provides. It paraphrases the 'id' parameter but adds no new meaning.

    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 'Update a community space' and 'Updates the community space specified by the provided space id.' The verb-resource pair is specific and unambiguous. However, it does not explicitly differentiate from sibling tools like create_community_space or delete_community_space beyond the verb itself.

    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?

    No guidance is provided about when to use this tool vs alternatives like create_community_space or delete_community_space. There is no mention of prerequisites, typical use cases, or situations where this tool should not be used.

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

  • Behavior2/5

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

    Annotations already set readOnlyHint=false and destructiveHint=false. Description only adds 'WRITE · updates data', which aligns but does not disclose additional behavioral traits like the effect on permissions or the idempotent nature already hinted. No contradiction.

    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?

    Description is concise at three short lines, front-loaded with the emoji and method. Could be slightly optimized but is clear and to the point.

    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?

    Despite high schema coverage, the description omits important context: no output format, no mention of conditional requirements (role_id changes required fields, noted in schema but not in tool description), and no differentiation from similar update tools. Incomplete for a write operation with complex conditional parameters.

    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?

    Both parameters (id, body) are fully described in the input schema (100% coverage). The description adds little beyond the schema, repeating the purpose. However, the schema covers parameter details well, so 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?

    Description clearly states the verb 'Update' and resource 'user role', with the line 'Updates the role assigned to the user.' It includes the HTTP method and endpoint, distinguishing it from sibling tools like update_user, update_user_group, etc.

    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?

    No guidance on when to use this tool vs alternatives (e.g., update_user for other user fields). Does not mention when not to use it or provide exclusion criteria. The sibling list includes many update tools, but the description offers no selection help.

    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 annotations already indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it creates data and returns the created resource, but does not disclose authorization requirements, idempotency implications, or potential side effects. It is consistent with annotations (no contradiction).

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is short and front-loaded with the action and endpoint, but contains redundancy ('Create a user group. Creates a new user group.'). The emoji and method add visual cues, but the repetition reduces 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 complexity of the input schema (nested objects, required fields) and no output schema, the description is minimal. It mentions the return value, but lacks details on error handling, validation, or practical usage scenarios, leaving key information 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?

    The input schema has 100% description coverage for the body parameter and its nested properties. The description does not add any additional meaning beyond what the schema already provides, so it meets the baseline but does not enhance understanding.

    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 verb 'create' and resource 'user group', and distinguishes it from sibling tools that are read, update, delete, or add operations. The emoji and endpoint path also reinforce the purpose.

    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?

    No guidance is provided on when to use this tool versus alternatives like 'add_user_user_group' or 'update_user_group'. There is no mention of prerequisites, conditions, or when not to use it.

    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 declare readOnlyHint=true and destructiveHint=false, so the agent knows it is safe. The description adds the endpoint path (GET) but no additional behavioral traits beyond what annotations provide. No contradictions.

    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 concise, consisting of two sentences plus a summary line. It is front-loaded with the endpoint and READ-ONLY indicator, but could be more structured.

    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 simplicity (one parameter, read-only) and good annotations, the description is reasonably complete. It explains what it does and what it returns, though no output schema is provided.

    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 100% with a clear description of the 'id' parameter. The description does not add extra meaning beyond the schema, so it meets the baseline of 3.

    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 'Get due affiliate payouts' and specifies it returns due payouts for a given affiliate, using a specific verb and resource. However, it does not differentiate from sibling tools like get_completed_affiliate_payouts or get_upcoming_affiliate_payouts, which have similar purposes.

    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 provides no guidance on when to use this tool versus alternatives, nor any prerequisites or context. It is missing explicit when-to-use or when-not-to-use information.

    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 indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds the HTTP verb and path but no further behavioral traits beyond what annotations provide.

    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?

    Short and front-loaded with emoji and URL. Minor repetition of 'progress of an asynchronous action' but overall efficient.

    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 simple tool with one parameter and no output schema, the description adequately covers the purpose and return type ('returns information about the progress').

    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 100% with the single parameter 'id' described as 'Job id'. The description does not add additional meaning beyond the schema.

    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 'Get the progress of an asynchronous action' and includes the HTTP method and path. While specific, it could better differentiate from other get tools 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 Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. It mentions read-only and async but lacks context on prerequisites or conditions.

    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 declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds the HTTP method and path, providing implementation context but no new behavioral traits beyond what annotations imply.

    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?

    Description is short and front-loaded with key info (read-only, endpoint). However, the first line duplicates the title, which is slightly redundant but not harmful.

    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 read-only tool with one parameter and no output schema, the description is adequate. It does not mention pagination, date ranges, or empty results, but these are somewhat implied by 'upcoming'.

    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 100% with a well-described id parameter. The description offers no additional parameter semantics beyond the schema, meeting the baseline for high coverage.

    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?

    Description clearly states the tool retrieves upcoming affiliate payouts for a given affiliate ID. However, it does not differentiate from sibling tools like get_affiliate_payments, get_completed_affiliate_payouts, or get_due_affiliate_payouts, missing an opportunity to clarify scope.

    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?

    No guidance is provided on when to use this tool versus alternatives. The description only states what the tool does, without context on prerequisites, filter constraints, or comparison to related tools.

    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?

    Description adds 'WRITE · creates data' and 'POST', consistent with annotations. However, it does not disclose reversal ability, permissions, or side effects beyond annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Description repeats information: 'Mark as complete' appears twice, and the HTTP method is redundantly stated. Could be more streamlined.

    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?

    Missing context about return values, error handling, and the distinction between marking units vs entire course. Output schema is absent, so description should compensate.

    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 100% so parameters are already described. Description adds no extra meaning 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 it marks course or learning activity progress as complete. Among sibling tools, it is distinct from other updates like update_user or update_course.

    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?

    No guidance on when to use this tool versus alternatives such as reset_user_progress or get_user_progress. The description lacks prerequisites or usage context.

    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 provide idempotentHint=true and destructiveHint=false. The description adds that it's a write operation and returns the updated resource, which is consistent but doesn't disclose additional traits like permission requirements 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?

    The description is short and front-loaded with the action and HTTP method. There is slight redundancy in repeating 'Update a seat offering' twice, but overall it's efficient.

    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 simple tool with annotations and full schema coverage, the description is sufficient. It clearly states what it does and the response format, though it could mention output details if an output schema existed.

    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 fully documents parameters. The description does not add any extra meaning beyond what's already in the schema.

    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 'Update a seat offering' with the HTTP method and path. It's specific about the resource but doesn't explicitly distinguish from sibling tools like create_seat_offering or delete_seat_offering.

    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?

    No guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or use cases beyond the basic 'update' action.

    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 indicate it is a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds that it returns the updated User resource, which is not in annotations. 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.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise and front-loaded with the emoji, method, and resource path. There is minor redundancy ('Update a user' and 'Updates user information'), but overall it is efficient and avoids unnecessary detail.

    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?

    The description is minimal for a complex tool with many nested parameters. It does not clarify whether the update is partial or full replacement, nor does it mention validation or idempotency beyond annotations. However, the schema and annotations cover many aspects.

    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 100%, so the schema already documents both parameters (id and body) and their nested properties. The description does not add any additional meaning or usage tips for parameters beyond what is in the schema.

    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 'Update a user' and 'Updates user information', indicating the verb and resource. However, it does not differentiate from sibling update tools like update_user_group or update_seat_offering, beyond the name.

    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 provides no guidance on when to use this tool versus alternatives, such as create_user for new users or other update tools. No context about prerequisites or typical use cases is given.

    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?

    Discloses it's a write operation (POST) and returns an array of created resources. No contradiction with annotations (readOnlyHint=false, destructiveHint=false). But lacks details on auth, rate limits, or side effects beyond what annotations imply.

    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?

    Concise with a front-loaded summary line including emoji and HTTP method/path. No unnecessary words. Could be slightly more detailed but not overly long.

    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?

    Adequate for a bulk creation tool, but does not explain partial failure behavior, idempotency, or return format in detail (no output schema). Could be more helpful with typical usage context.

    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 50%, and the description adds no extra meaning to parameters like prefix, quantity, expires. The description does not explain parameter format or constraints 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?

    Clearly states the verb 'create', resource 'coupons in a promotion', and that it's bulk. Distinguishes from the sibling tool create_coupon_promotion which likely creates a single coupon.

    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?

    No when-to-use or when-not-to-use guidance. Does not mention alternatives like create_coupon_promotion for single coupon creation.

    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 indicate readOnlyHint=false and destructiveHint=false. The description adds that this is a WRITE operation that 'creates data' and that the response includes the course contents with the new section. However, it does not disclose potential authorization needs, rate limits, or side effects beyond creation.

    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 concise, using three lines. The inclusion of the endpoint path and emoji is somewhat unnecessary but does not hinder clarity. It front-loads the purpose and avoids extraneous details.

    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?

    The tool has no output schema, but the description mentions the response includes course contents with the new section, partially addressing return value. However, given the complex nested object in the body parameter and the lack of details about the body, the description is not fully complete for agents to invoke correctly without additional context.

    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?

    The schema provides 'Course Id' for the id parameter but the body parameter description is hidden ('You do not have permission to view this reference'). The tool description does not explain the body structure or provide example values. With 100% schema coverage but the body effectively undocumented, the description adds no clarity beyond what schema already offers.

    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 'Creates a new course section in the course' providing the specific verb and resource. The endpoint '/v2/courses/{id}/sections' further clarifies the action. This differentiates it from sibling tools like 'create_course' which creates a whole new course.

    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 provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or comparisons to other tools like update_course_section (if it existed). The agent must infer usage solely from the tool name and siblings.

    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 indicate destructiveHint=true and readOnlyHint=false, so the agent knows it's a destructive operation. The description adds context ('Revoke / Invalidate') and the HTTP endpoint, but does not elaborate on side effects, reversibility, or authorization requirements. It adds moderate value beyond annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is brief but contains some redundancy (e.g., the first line's emoji and HTTP method are already implied by annotations and schema). It could be streamlined by removing the first line, which adds no unique value. The core content is clear but slightly verbose.

    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 delete operation with one parameter and no output schema, the description is minimally adequate. However, it omits details about irreversibility, impacts on dependent resources, or confirmation steps. Given the tool's simple nature, the description is complete enough for basic use but lacks depth.

    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?

    The schema has 100% description coverage for the single parameter 'id', which is described as 'Certificate Id'. The description merely restates this ('provided certificate id'). No additional semantic information or formatting hints are provided beyond what the schema already offers.

    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 action ('delete a certificate') and the resource ('certificate specified by the provided certificate id'). The HTTP method and endpoint are also provided, making the purpose unambiguous. The tool is well-distinguished from siblings by the specific resource type.

    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 provides no guidance on when to use this tool versus alternatives (e.g., update_certificate_reissue). No context on prerequisites, scenarios, or limitations. The agent must infer usage solely from the tool's name and basic description.

    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, idempotentHint, etc. The description adds behavioral details: sorted by creation date (most recent first), paginated with limit of 50 per page, which goes beyond what annotations provide.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is front-loaded with a READ-ONLY tag and endpoint, but there is repetition of 'Get a list of subscription plans' at the start and second line. Could be more concise.

    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, one-parameter read-only list tool, the description covers sorting and pagination. However, with no output schema, it lacks details about the structure of each subscription plan returned, which an agent might need.

    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 100% for the single 'page' parameter with a description. The description mentions pagination but does not add further meaning beyond the schema.

    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 it retrieves a list of subscription plans, with details on sorting and pagination. However, it does not explicitly distinguish from the sibling tool 'get_subscription_plan' which retrieves a single plan.

    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?

    No guidance is provided on when to use this tool versus alternatives like 'get_subscription_plan' for retrieving a specific plan.

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

  • Behavior2/5

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

    Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds only that it's a GET request, which is redundant. No additional behavior like error handling, auth needs, or rate limits 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?

    Extremely concise: two sentences plus an emoji indicator. Every element serves purpose without fluff.

    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?

    No output schema exists, so description should elaborate on return value structure. Mentions 'information about the payment' but lacks details. Adequate for a simple GET, but could be more helpful.

    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 100% with one parameter 'id' having 'Payment Id or Transaction id' description. Description adds no extra meaning beyond schema, so 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?

    Clear verb and resource: 'Get payment' and description explicitly says 'Returns information about the payment specified by the provided payment id.' Differentiates from sibling 'get_payments' which presumably lists multiple payments.

    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?

    No guidance on when to use this tool vs alternatives like get_payments or other get_* tools. No exclusions or prerequisites mentioned.

    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 indicate readOnlyHint=false and destructiveHint=false. The description adds context that it is a WRITE operation creating data via POST and returns the affiliate resource. This is useful but does not elaborate on side effects, permissions, or duplicate handling.

    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 short, front-loaded with the crucial information about the operation, endpoint, and action. Two sentences plus a header line. No wasted words. However, the header might be considered redundant with annotations, but overall efficient.

    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 two parameters, no output schema, and simple behavior, the description is minimally adequate. It states the action and the response type. However, it lacks details on default behaviors, error conditions, and any required permissions. Could be more complete for safe usage.

    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?

    The input schema has 50% description coverage (body.description is empty). The description does not add any parameter-specific meaning beyond the schema. It only mentions 'user id' in the text but does not explain the body parameters or the format of id. The schema already provides descriptions for most fields, but the description could compensate for missing coverage and does not.

    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 verb 'make' and resource 'affiliate', specifying that it sets a user as an affiliate. It distinguishes from sibling tools which involve creating users, courses, etc., not making affiliates.

    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?

    No guidance on when to use this tool versus alternatives. It does not mention prerequisites or compare to other creation tools like create_user or create_promotion. The description implies usage when you have a user id to designate as an affiliate, but no explicit when-not-to-use.

    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 declare destructiveHint=true and idempotentHint=true. The description adds 'DESTRUCTIVE' and the HTTP DELETE method, confirming destructive behavior but offering little beyond annotations. No contradiction.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is short but contains redundancy ('Unenroll user from product' appears twice). It includes the HTTP method and path, which may be unnecessary. Could be more concise.

    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?

    Given the 2-parameter input with a nested body and no output schema, the description adequately states the purpose but does not explain return values or the role of 'productType'. Annotations fill some gaps, but completeness is average.

    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?

    The description mentions 'product id' but does not clarify 'productType' or the encoding of 'id' beyond schema. Schema coverage is 50% (body description empty), and the description partially compensates by indicating the product identification.

    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 'Unenroll user from product' and includes a destructive warning. The verb 'Unenroll' and resource 'user from product' are specific, distinguishing it from siblings like 'enroll_user_product'.

    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?

    No guidance is provided on when to use this tool versus alternatives like 'remove_user_seat' or 'enroll_user_product'. The description lacks context on prerequisites or comparisons.

    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 indicate it is a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it uses POST, creates data, and supports multiple seats, but does not detail side effects, auth requirements, or response structure beyond stating it returns the created resource.

    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 short and includes a front-loaded label (emojis, HTTP method, write type). It contains some redundancy ('Create a seat offering' followed by 'Creates a new seat offering') but overall is efficient.

    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?

    Given the complexity of the tool (required fields like title, products, number_of_seats), the description provides minimal context beyond the creation action. The schema covers parameters, and annotations cover basic behavior, so the description adds little completeness.

    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?

    The input schema has 100% description coverage for all properties. The description adds no additional parameter semantics; it solely relies on the schema. Baseline of 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 explicitly states 'Create a seat offering' and 'Creates a new seat offering', with a clear verb (create) and resource (seat offering). It distinguishes from sibling tools like 'add_user_seat_offering' or 'update_seat_offering'.

    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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, contexts, or scenarios where other tools might be more appropriate.

    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 declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the HTTP method and path, and repeats 'READ-ONLY,' but no further behavioral details (e.g., response shape, permissions). With annotations covering core traits, the description adds minimal value.

    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 concise with three lines, front-loading key information (READ-ONLY, HTTP path). No redundant or verbose language, though it repeats 'Get a bundle' in the second line.

    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 get-by-ID tool with one parameter and no output schema, the description is adequate but minimal. It does not describe the return value structure or any additional context about bundles, leaving the agent to infer that the full bundle object is returned.

    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?

    The input schema has 100% coverage, describing the parameter 'id' as 'Unique identifier of the bundle.' The description does not add additional semantics beyond what is already in the schema. 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 'Get a bundle' and 'Returns the bundle specified by the provided bundle id.' It distinguishes from the sibling tool get_bundles (plural) which likely lists bundles, and other get_ tools for different entities. The HTTP path is also provided.

    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?

    No guidance on when to use this tool versus alternatives like get_bundles or other get_ tools. The description does not mention prerequisites or when not to use it, leaving the agent without decision support.

    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 adds pagination details (limit of 20 per page) and ordering (most recent first) beyond annotations, which already indicate read-only and idempotent. No contradictions 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.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise, consisting of a header and two clear sentences. It is front-loaded with the purpose and provides necessary details without fluff.

    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 read-only tool with no output schema, the description covers purpose, ordering, and pagination. However, it lacks details on what a response contains and error conditions, which could be helpful for an AI agent.

    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 covers all 4 parameters with descriptions, so baseline is 3. Description adds context about pagination but does not elaborate on parameter usage beyond schema. Slight inconsistency: description mentions 'a user' but users parameter supports multiple.

    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 it retrieves form responses, specifying the action and resource. However, it does not differentiate from sibling tool 'get_assessment_responses' which might serve a similar purpose.

    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?

    No explicit guidance on when to use this tool versus alternatives like get_assessment_responses. The description implies it is for form responses but does not provide usage context or 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 provide destructiveHint and idempotentHint. Description adds the HTTP DELETE method and a 'DESTRUCTIVE' emoji, reinforcing destructiveness, but lacks further 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.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Very concise, but repeats 'Remove user from a user group' twice. First line with emoji and path is efficient; redundancy reduces structure quality slightly.

    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?

    Adequate for a simple removal tool with annotations. Does not mention idempotent behavior or what happens if user not in group, but basic action is clear.

    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 100%, with clear descriptions for both parameters. Description does not add any additional parameter info, so baseline 3.

    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?

    Clear verb 'remove' with specific resources: user from user group. Includes HTTP method and path, distinguishing from sibling tools like add_user_user_group or deletes_user_group.

    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?

    No guidance on when to use this tool versus alternatives. Does not mention prerequisites or exclusions despite siblings being present.

    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 declare destructiveHint=true. The description adds that the deletion is processed asynchronously, which is useful beyond annotations. 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.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is short and to the point, with two sentences plus a header. It includes an emoji and HTTP method line, which are not essential but not overly verbose. Efficient overall.

    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 simple delete operation with one parameter and no output schema, the description covers the key points: what it deletes, how (asynchronously), and provides the endpoint. Sufficient for the tool's complexity.

    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 100% and the parameter 'id' is described in the schema. The description doesn't add additional semantic information beyond what the schema provides.

    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 verb 'delete' and the resource 'seat offering', distinguishing it from siblings like update_seat_offering or create_seat_offering. The title and first sentence explicitly identify the action and target.

    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 does not provide when-to-use or when-not-to-use guidance relative to sibling tools (e.g., remove_user_seat). It mentions destructive and asynchronous nature but no explicit context for selection.

    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 indicate readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds the 'READ-ONLY' label and HTTP method, but these are redundant with annotations and provide no new 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?

    The description is extremely concise, using three short lines with front-loaded emoji and read-only indicator. Every sentence is necessary and efficient.

    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?

    Given the simple tool (1 param, no output schema, annotations present), the description adequately states the purpose but provides vague information about the return value ('information about the community post'). It is sufficient but not comprehensive.

    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 100%, so baseline is 3. The description only restates the schema's 'post id' without adding additional meaning or format details.

    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 verb 'Get' and the resource 'community post', distinguishing it from the sibling 'get_community_posts' which retrieves multiple posts.

    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?

    No guidance is provided on when to use this tool versus alternatives, such as searching or listing posts. No when-not or exclusion criteria are mentioned.

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

  • Behavior2/5

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

    The description adds the HTTP method and endpoint (GET /v2/user_groups/{id}) but this is redundant given annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. It does not disclose any additional behavioral traits such as authentication, rate limits, 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is very concise: two short sentences plus the endpoint line. Every sentence is informative and there is no fluff. The structure front-loads the essential action.

    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 simplicity (one required parameter, no output schema, and comprehensive annotations), the description is sufficiently complete. It explains what the tool does and what parameter it needs.

    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?

    The description mentions the 'provided user group id' but adds no meaning beyond the schema, which already describes the 'id' parameter as 'the unique identifier of the user group'. With 100% schema coverage, 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 verb ('Get') and resource ('user group'), and specifies it returns the user group by a unique identifier. This distinguishes it from sibling list tools like 'get_user_groups' and 'get_user_groups_that_user_is_member' by focusing on a single retrieval operation.

    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?

    No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusions. The user must infer from the tool name and schema alone.

    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 indicate destructiveHint=true and readOnlyHint=false, so the description adds some context with 'DESTRUCTIVE' and 'deletes'. It also clarifies the optional removal from the seat offering. However, it does not disclose potential side effects, required permissions, or what happens to associated data. With annotations covering the safety profile, a 3 is appropriate.

    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 short and to the point. The metadata line (emoji, HTTP method) is somewhat redundant but not wasteful. The two sentences are efficient and front-loaded with key information. Could be slightly improved by removing the metadata line if annotations already convey destructiveness.

    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 destructive tool with 3 parameters (one nested) and no output schema, the description covers the essential action and optional behavior. It does not describe what happens to related entities or whether removal is reversible, but the annotations include idempotentHint=true which implies safety in re-execution. Overall, it is adequate for the complexity.

    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 100%, so the baseline is 3. The description mentions 'optionally from the seat offering,' which adds meaning to the body parameter's purpose beyond the schema. However, the required parameters id and uid are not elaborated upon. The description adds marginal value over 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 action ('Remove user from a seat') and the resource ('seat'). It includes the HTTP method and endpoint, making the purpose unambiguous. The sibling tools like remove_user_community_space and remove_user_user_group show that this tool is specifically for seats, so it is well differentiated.

    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?

    No explicit guidance on when to use this tool versus alternatives. It simply describes the removal action without mentioning prerequisites, context, or exclusions. Sibling tools like add_user_seat_offering or get_users_seat_offering are not referenced, so the agent has no direction on choosing this tool over others.

    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 provide idempotentHint and destructiveHint false. Description adds that it updates data and returns the suspended User resource. Does not clarify if suspension is reversible or whether active sessions are terminated.

    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?

    Concise with key information: purpose, HTTP method, resource type, and response. Extra '🟡 WRITE' line is somewhat extraneous but not harmful.

    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?

    Adequately covers purpose and effect for a simple tool with one parameter. Mentions response type, which is helpful. No output schema needed.

    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?

    Single parameter 'id' fully described in schema as 'User id or email (encoded string)'. Description adds no additional meaning beyond schema 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?

    Clearly states 'Suspend a user' and describes effect: prevents login and account creation. Distinct from sibling 'unsuspend_user'.

    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?

    No guidance on when to use this tool versus alternatives like 'unsuspend_user' or 'delete_certificate_revoke_invalidate'. Does not mention prerequisites or context.

    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 indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds that it is a WRITE operation and updates data, which is consistent but not additional. It mentions the HTTP method and endpoint but does not disclose side effects, required permissions, or other behavioral details beyond what annotations imply. No contradictions.

    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 short and front-loaded with the purpose, starting with 'Unsuspend a user'. However, it contains slight redundancy: the header line repeats 'Unsuspend a user' and the first sentence restates it. Overall, it is concise but could be slightly tighter.

    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 simplicity (one parameter, no output schema), the description is adequately complete. It states the input (id), action (unsuspend), and output (the unsuspended User resource). The annotations provide safety context. It could mention idempotency or prerequisites, but overall it covers the necessary information.

    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?

    The schema covers the single parameter 'id' with a description ('User id or email (encoded string)'), achieving 100% coverage. The description does not add further semantic meaning or constraints beyond what the schema already provides, so the baseline score of 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 verb 'Unsuspend' and the resource 'user', directly indicating the action. It distinguishes from the sibling 'suspend_user' by specifying the opposite operation. The purpose is explicitly defined with no ambiguity.

    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 provides no guidance on when to use this tool versus alternatives, such as when a user is already active or prerequisites like the user must be suspended first. Despite having a clear sibling 'suspend_user', no explicit when-to-use or when-not-to-use instructions are given.

    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 indicate it is a write, non-destructive, idempotent operation. The description adds the HTTP method and response type, but does not disclose additional behavioral traits beyond what annotations provide.

    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 very concise, with a clear prefix indicating method and resource, and no superfluous content. Each sentence adds value.

    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?

    Although there is no output schema, the description mentions the response contains the updated User resource. It lacks error conditions or permission details, but given the tool's simplicity, it is fairly complete.

    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 50%, and the description does not add meaningful detail about the parameters beyond what the schema already specifies. It mentions the 'id' param but does not elaborate on 'body', 'tags', or 'action'.

    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 verb 'update' and the resource 'user tags', and specifies the endpoint and response. It uniquely identifies the tool among siblings, as no other tool in the list manages tags.

    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 does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It simply states what the tool does.

    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 declare readOnlyHint=false, destructiveHint=false. The description adds that it is a WRITE operation and uses POST, but does not disclose potential side effects, required permissions, or error conditions. With annotations present, the description offers marginal additional context.

    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 brief (two sentences plus a header line) and includes key information like HTTP method and endpoint. Slight redundancy between title and first sentence, but overall efficient.

    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?

    Given the tool is a write operation with two parameters (one nested object) and no output schema, the description covers the basic action and required pid. However, it lacks details about the body structure (beyond schema), error conditions, and response format. The presence of annotations slightly reduces the burden, but completeness is adequate.

    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 50% (body parameter description is empty). The description only reiterates that pid refers to promotion id, adding no new meaning beyond the schema. For the body parameters, the description provides no extra semantics, so it does not compensate for the missing schema description on body.

    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 verb ('Create') and resource ('a coupon in a promotion') and specifies the input (promotion id). It distinguishes from sibling 'create_coupons_promotion_bulk' by implying single coupon creation, though not explicitly compared.

    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 this tool is for creating a single coupon within a promotion, but does not explicitly contrast with alternatives like 'create_coupons_promotion_bulk' (bulk creation) or provide any when-to-use/when-not-to-use guidance. The usage context is clear but lacks 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 adds that the tool creates a new promotion and returns the created resource, which is consistent with annotations (readOnlyHint=false, destructiveHint=false). However, it does not disclose additional behavioral traits such as side effects or prerequisites beyond what annotations already convey.

    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 short and front-loaded, with minimal redundancy. The header line repeats some information but does not significantly hinder conciseness.

    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?

    Given the nested input schema and lack of output schema, the description provides adequate context but could be more complete by explaining constraints or required fields. The resource response is noted, which helps.

    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 parameters are described in the input schema (100% coverage), so the description does not add value beyond the schema. Baseline score of 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 tool creates a promotion without coupons, using a specific verb and resource. It distinguishes itself from sibling tools like create_coupon_promotion by explicitly noting the absence of coupons.

    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 usage for creating promotions without coupons but does not explicitly mention when to use alternatives or when not to use this tool. The sibling list includes related tools, but no guidance is 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?

    Annotations provide readOnlyHint=false and destructiveHint=false. The description adds that it is a WRITE operation and returns the created User resource, but does not disclose additional behavioral traits like permissions or side effects. It is adequate but not enhanced.

    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 very concise (two sentences plus a header) and front-loads the key purpose. It is well-structured with minimal waste, but could include slightly more context (e.g., required fields) without sacrificing brevity.

    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?

    The description covers the basic purpose and response, but does not elaborate on the nested objects in the body or any constraints. Given the tool's complexity (many optional fields) and lack of output schema, the description is minimally complete but leaves room for improvement.

    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?

    The input schema has 100% description coverage for all parameters, so the description does not need to add parameter details. The description adds no extra meaning beyond the schema, so a baseline score of 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 'Create a user' and 'Creates a new user', providing a specific verb and resource. There are no sibling tools with the same purpose, so it effectively distinguishes itself.

    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 usage (to create a user, use this tool), but it does not explicitly state when to use it vs alternatives or provide any prerequisites or exclusions. Since there is no alternative for creating a user, the implication is clear, but lacks explicit guidance.

    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 provide destructiveHint and readOnlyHint. Description adds a 'DESTRUCTIVE' warning but no extra behavioral traits beyond confirming deletion. No contradiction.

    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?

    Extremely concise: one-line header with emoji and HTTP method, then two short sentences. 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 simple delete-by-id tool, the description covers the essential action. With good annotations and full schema coverage, it is complete enough, though it lacks error conditions or prerequisites.

    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?

    Only one parameter 'id' with schema description 'Unique identifier of the community space'. Description does not add any additional meaning beyond what the schema already provides.

    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 it deletes a community space by id, using specific verb 'delete' and resource 'community space'. It differentiates from siblings like create, update, get.

    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?

    No guidance on when to use this tool versus alternatives, such as remove_user_community_space or suspend. No prerequisites or conditions mentioned.

    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 provide readOnlyHint, idempotentHint, and destructiveHint. The description adds value by disclosing that the returned link is 'private and expiring', which is not in annotations. There is no contradiction.

    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 short and front-loaded with the read-only indicator and HTTP method. However, the first line repeats the tool name, making it slightly redundant. Overall, each sentence contributes useful information.

    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?

    For a simple read-only tool with one parameter and no output schema, the description fully covers the purpose, the URL path, and the return value. No additional context is needed.

    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?

    Parameter schema coverage is 100% and the description of 'id' matches the schema's description. The tool description does not add additional semantics beyond what is already in the schema, so baseline 3 is 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 clearly states 'Get invoice link per payment' and specifies the return values (invoice number and private expiring link). It distinguishes itself from sibling payment tools like get_payment by focusing on the invoice link. However, it repeats the tool name without additional differentiation language.

    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?

    No guidance on when to use this tool versus alternatives such as get_payment or get_payments. The description only explains what it does, not its specific context or prerequisites.

    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 adds that it is a GET endpoint and returns a list of products, beyond the annotations which already declare readOnlyHint and idempotentHint. However, it lacks details on pagination, ordering, or potential limits.

    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 concise (two sentences plus endpoint line) but includes the redundant title line. The emoji and endpoint help orientation. No unnecessary information.

    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?

    Given no output schema, the description partially covers return values ('list with all the products') but omits field details, error cases, or prerequisites. Annotations fulfill some completeness but context remains basic.

    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 100% schema description coverage for the single parameter 'id', the baseline is 3. The description only repeats 'user id', adding no extra meaning beyond the schema's 'User id or email'.

    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 verb ('Get') and resource ('products of user'), specifying the user is identified by id. It distinguishes from siblings like 'get_users_product' by focusing on products per user, making its 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 Guidelines3/5

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

    The description implies usage for retrieving all products of a specific user, but it does not explicitly state when to use this tool versus alternatives (e.g., 'get_users_product' for the inverse) or provide 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 declare readOnlyHint, idempotentHint, destructiveHint. Description adds HTTP method 'GET' and 'READ-ONLY' emoji, but no additional behavioral details beyond what annotations provide.

    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?

    Short description with front-loaded emoji and method, followed by two brief sentences. Slightly redundant but efficient and clear.

    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 retrieval tool with one parameter and no output schema, the description gives minimal details about return value (just 'returns the promotion'). Lacks specifics about promotion fields, but acceptable given simplicity.

    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 100% with a single parameter described as 'Promotion Id'. Description rephrases this as 'specified by the provided promotion id', adding no extra meaning beyond 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?

    Description clearly states verb 'Get promotion' and resource 'promotion', specifies it returns a promotion by ID, distinguishing it from list tools like get_promotions and create_promotion.

    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 implied: use when you need a specific promotion by ID. No explicit when-to-use or alternatives mentioned, but the simple retrieval context makes it adequate.

    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 declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds context that the tool returns upcoming scheduled events and lists the categories. No contradictions, but no additional behavioral disclosures (like pagination or rate limits).

    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 highly concise: 3 lines with emoji indicator, endpoint, and clear statement of purpose. Every sentence adds value with no 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?

    Given the tool's simplicity (1 optional param, no output schema, clear annotations), the description adequately covers the purpose and scope. However, it could briefly mention the return format (e.g., array of event objects) for better completeness.

    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 100% for the single optional parameter 'event_type' with enum values described. The description lists the same categories ('dripFeed', 'fileAssignment', 'liveSession') but adds no extra meaning beyond the schema.

    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?

    Description clearly states 'Get school events' and specifies the scope: 'all the upcoming scheduled school events, regarding course drip feed, file assignment and live session.' It identifies the resource and action well, but does not explicitly differentiate from sibling tools like 'get_courses' or 'get_contents_course'.

    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 usage for retrieving school events of specific types, but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it.

    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 declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds the endpoint and mentions it returns progress data with breakdown, but no further behavioral traits like authorization or performance are disclosed.

    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 concise but slightly repetitive (first two sentences convey similar information). It uses an emoji and endpoint line which are helpful, but could be tightened.

    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?

    No output schema exists, and the description only vaguely mentions returning progress data with learning activity breakdown. Missing details on pagination, data format, or error cases, but adequate for a simple read tool.

    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 100% with clear descriptions for both parameters (id and cid). The description mentions 'user id' and 'course id' but adds no extra meaning beyond what the schema provides.

    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 verb 'Get' and the resource 'user progress per course', specifying that it returns information for a given user and course with breakdown per learning activity. It is distinct from siblings like get_user_progress and get_courses_enrollments_user.

    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 usage when needing progress for a specific user and course, but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives like get_user_progress or reset_user_progress.

    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 indicate destructive=True, and the description reinforces this with a destructive emoji and method. However, it does not add new behavioral context beyond the endpoint and basic action. 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?

    The description is highly concise, front-loading the destructive hint and endpoint in a single line, followed by two brief sentences. Every part adds value with no 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 simple removal tool without an output schema, the description sufficiently covers the action. It could mention idempotency (already in annotations) or assumptions about existing users, but overall is complete enough.

    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 100% with clear parameter descriptions. The tool description merely restates the parameter purpose without adding new meaning, so a baseline of 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 tool removes a user from a community space, with a specific verb and resource. It includes the HTTP method and path, and distinguishes from sibling tools like add_invite_users_community_space.

    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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or contrast with sibling tools like add_invite_users_community_space.

    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 indicate readOnlyHint=false and destructiveHint=false, which the description supports by stating 'creates data'. The description mentions the option to assign a seat via the body parameter, but does not disclose behavior on duplicate entries, error handling, or side effects. Some behavioral context is added beyond annotations.

    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 concise (two sentences plus a header with HTTP method and endpoint) and front-loaded with key information. The header is informative but not strictly necessary; overall, no wasted text.

    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?

    The tool has 3 parameters and no output schema, but the description omits several critical details: what the response is (e.g., success message or created object), whether the user must exist, what happens if the user is already part of the offering, and any side effects. Given these gaps, the description is incomplete for reliable 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?

    Input schema has 100% coverage; description adds value by explaining the purpose of the optional body parameter add_to_active_seat (assign a seat). For id and uid, it restates schema info but does not add new semantics, though the body parameter explanation justifies a score above baseline of 3.

    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 'Add a user to a seat offering' and includes the HTTP POST endpoint, specifying the verb and resource. It distinguishes from sibling tools like create_seat_offering (which creates the offering) and remove_user_seat (which removes a user).

    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 usage for adding a user to an existing seat offering, but does not explicitly state when to use this tool versus alternatives (e.g., create_seat_offering, remove_user_seat). No prerequisites or context about when it is appropriate are provided.

    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 read-only, idempotent, and non-destructive. Description adds sorting order (oldest first), providing behavioral context beyond annotations. Consistent 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?

    Extremely concise: one header line, one clear sentence of purpose, and one behavioral detail. No unnecessary words, front-loaded with action.

    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?

    Lacks mention of pagination behavior despite 'page' and 'items_per_page' parameters. Also no description of response structure since output schema is absent. Adequate but with notable gaps.

    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 has 100% description coverage for all 5 parameters. Description does not add any parameter-level information beyond the schema, so 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?

    Description clearly states it returns a list of all community spaces, with specific verb 'Get' and resource 'community spaces'. Distinguishes from sibling 'get_community_space' (singular) and other CRUD tools.

    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?

    No explicit guidance on when to use this tool versus alternatives like 'get_community_space' or other retrieval tools. Only states what it does without usage context.

    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 declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the HTTP method (GET) and a READ-ONLY label, which is consistent but not substantially beyond annotations. It does not disclose additional behavioral details like authentication or response structure.

    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 extremely concise, using three short sentences to convey purpose, HTTP method, and behavior. It front-loads important flags (READ-ONLY, resource type) and contains no unnecessary words.

    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?

    The description states the tool returns 'information about the course' but does not specify what fields or structure, given there is no output schema. For a simple get operation, this is adequate but could be more informative about the return content.

    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 100%, and the description merely restates the parameter as 'provided course id' without adding meaning beyond the schema's description 'Unique identifier of the course'. No extra semantics are provided.

    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 explicitly states 'Get a course' and 'Returns information about the course specified by the provided course id.', making the action (get) and resource (course by id) clear. This distinguishes it from sibling tools like get_courses (list) and create_course (mutation).

    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 usage for retrieving a single course by id but does not provide explicit guidance on when to use this versus alternatives like get_courses or get_contents_course. No exclusions or contexts are mentioned.

    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 and destructiveHint=false. The description adds valuable behavioral details: pagination limit of 50 per page, AND logic for multiple parameters, and the HTTP method. No contradictions 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.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is reasonably concise, front-loaded with key details (read-only, pagination), though it repeats 'Get event logs' after the title. Overall, it's well-structured.

    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 no output schema, the description adequately covers what is returned (list), pagination behavior, and parameter composition. It is complete for an agent to use effectively.

    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 100%, so the description adds little beyond what the schema already provides. It mentions 'query params' but does not elaborate on parameter specifics.

    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 tool retrieves event logs, is read-only, and paginated. However, it does not explicitly distinguish from potentially similar sibling tools like 'get_school_events'.

    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 explains how to use query parameters (AND operator) and pagination, but lacks guidance on when to use this tool vs alternatives, such as when to choose 'get_school_events'.

    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, idempotentHint, and destructiveHint=false. The description adds value by specifying the HTTP method (GET) and endpoint path, and explicitly stating it returns a list of all seat offerings for the user. This provides additional behavioral context beyond the annotations.

    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 concise, with only a few lines. The first line is somewhat redundant with annotations but not misleading. The core information is front-loaded in the second sentence. 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?

    Without an output schema, the description states it returns a list of seat offerings. This is sufficient for a simple read operation with one input. More detail could be added about the structure of seat offering objects, but given the tool's simplicity and annotation coverage, it is reasonably 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?

    The input schema has 100% coverage for the single parameter 'id', describing it as 'User Id or email (encoded string)'. The description does not add new meaning beyond mentioning 'specified user', so 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 tool retrieves seat offerings that a user is a member of, using a specific verb and resource. It distinguishes itself from sibling tools like 'get_seat_offerings' (which may list all offerings) and 'get_users_seat_offering' (which likely gets users for an offering) by focusing on a single user's memberships.

    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?

    No guidance is provided on when to use this tool versus alternatives. The description only states its function, without clarifying prerequisites, when not to use it, or contrasting it with similar sibling tools.

    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 provide readOnlyHint, idempotentHint, destructiveHint. Description adds the endpoint and a 'Read-Only' indicator, but no additional behavioral traits beyond what annotations convey. No contradiction.

    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?

    Description is extremely concise: three lines with emoji, endpoint, and two sentences. No redundancy, front-loaded with read-only indicator.

    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?

    For a simple get-by-ID tool with high schema coverage and full annotations, the description is complete enough. It implies the return is the user object, and no output schema is needed.

    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?

    Input schema covers both parameters (id, include_suspended) with descriptions. The description does not add extra meaning beyond restating the id parameter. With 100% schema coverage, baseline is 3.

    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 'Get a user' and 'Returns the user specified by the provided user id.' It uses a specific verb and resource, distinguishing it from siblings like get_users, get_user_group, etc.

    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?

    No guidance on when to use this tool versus alternatives. Sibling tools include many similar get_* functions, but the description does not differentiate contexts.

    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 indicate readOnly, idempotent, non-destructive. The description adds that it's a GET endpoint, specifies sorting order and pagination behavior, which goes beyond the annotations. No contradictions found.

    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 well-structured with a header line and clear sections. It is somewhat lengthy but each part adds information. The most critical details (purpose, sorting, pagination) are 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 read-only list tool with no output schema, the description covers what is returned (list, sorted, paginated) and how to refine results (query params with AND). Missing details on the structure of each payment object, but the description is reasonably complete for agent 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?

    Input schema covers all parameters (100% coverage) with descriptions. The description adds value by explaining that multiple query params are combined with AND logic, which is not evident from the schema alone. This aids in constructing queries.

    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 tool retrieves affiliate payments sorted by most recent. It distinguishes from other payment-related tools by focusing on affiliates. However, it does not explicitly differentiate from very similar sibling tools like get_completed_affiliate_payouts or get_upcoming_affiliate_payouts, which could cause ambiguity.

    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 provides pagination limits (50 per page) and explains that multiple query parameters are combined with AND. However, it offers no guidance on when to use this tool versus alternatives such as get_payments or get_specific_affiliate_payouts, leaving the agent to infer context.

    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, idempotentHint, and destructiveHint. The description adds the HTTP method (GET) and the API endpoint path, which provides additional context about the underlying operation. It also explicitly labels the tool as 'READ-ONLY · Reporting', reinforcing the annotations. No contradictions.

    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 extremely concise, using only 3 short sentences. It front-loads key information (read-only, reporting, HTTP method and path) and then succinctly describes the purpose. No superfluous information or repetition.

    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 has only 1 parameter, no output schema, and low complexity, the description adequately covers the basic functionality. It explains the input (course id) and the output concept (analytics). However, it does not detail what specific analytics are returned, which could be helpful for an agent. The annotations and single parameter simplicity compensate somewhat.

    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?

    The schema covers 100% of parameters with a basic description ('Course Id'). The tool description does not add any additional meaning, format constraints, examples, or context beyond what the schema already provides. Baseline score applies as schema coverage is high.

    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 retrieves analytics for a specific course, using the verb 'get' and specifying the resource 'analytics for a course'. The inclusion of the HTTP method and path further clarifies. Among siblings, it is distinct from other analytics tools like get_analytics_learning_activity and other course-related tools.

    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 does not provide any guidance on when to use this tool versus alternatives. It does not mention any prerequisite conditions, filtering options, or scenarios where this tool is preferred over other analytics tools. The user is left to infer use cases from the tool's name alone.

    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 indicate read-only and idempotent behavior. The description adds that responses are listed with most recent first and paginated with a limit of 20, providing useful behavioral context beyond annotations.

    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 concise, with three sentences and a clear front-loaded indicator. However, the first line partly duplicates annotation information, which slightly reduces efficiency.

    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 4-parameter tool with no output schema, the description explains the return order and pagination but omits details like overflow behavior (described in schema) and the structure of a response object.

    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 100%, so the description does not need to explain parameters. It adds no extra meaning beyond what the schema provides, so baseline score of 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 tool retrieves assessment responses for a user, specifying the resource (assessment responses) and the verb (retrieves). It distinguishes from siblings like get_form_responses by focusing on assessments.

    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 provides usage context (paginated, ordered by most recent, 20 per page) but does not explicitly state when to use this tool over alternatives like get_form_responses or how to handle edge cases.

    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 and destructiveHint. The description adds value by specifying the sorting order, pagination behavior, and limit of 50 courses per page, which are beyond what annotations provide.

    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 informative with a clear structure: read-only indicator, HTTP method, short description, then details. It is not overly verbose, though the emoji and title line could be considered extra. Still, it is efficient.

    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?

    The description covers ordering and pagination, but with no output schema, it lacks details on the structure of returned course objects. For a simple list tool, this is acceptable but not 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 description coverage is 100%, so the parameters are well-documented in the schema. The description does not add further parameter semantics beyond what is already there, so baseline score of 3 applies.

    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 returns all courses, sorted by most recent first and paginated. This distinguishes it from sibling tools like get_course (single course) and get_courses_enrollments_user (user-specific enrollments).

    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 explains the function but does not provide explicit guidance on when to use this tool versus alternatives like filtered course queries or other list endpoints. The usage is implied but not fully specified.

    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, idempotentHint=true, and destructiveHint=false. The description adds value beyond annotations by specifying pagination (limit of 50 per page) and the HTTP endpoint. No contradictions 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.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise with three sentences plus a header. It front-loads the purpose and includes the endpoint. Minor fluff (emoji and 'Users') but overall efficient. Slightly redundant with the title in annotations.

    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?

    The description adequately explains that it returns a paginated list of course enrollments. However, without an output schema, it does not detail the structure of the enrollment data, which could be important for an agent. The lack of return format detail is a gap.

    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 100%, so the description does not need to add parameter details. The description mentions pagination but does not add specific format or constraints beyond what the schema already provides for 'id' and 'page'. Baseline score of 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 tool retrieves courses (enrollments) of a user with the verb 'Get' and resource 'courses/enrollments of user'. It distinguishes itself from sibling tools like 'get_course' and 'get_courses' by specifying user-specific enrollment data.

    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 implicitly suggests use for retrieving user enrollments, but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., 'get_products_user', 'get_user_progress'). No exclusions or prerequisites are mentioned.

    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?

    Adds behavioral context beyond annotations: pagination limit, sorting order, and HTTP method. Annotations already cover read-only, idempotent, non-destructive.

    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?

    Concise with emoji and method line; no wasted words. Could be slightly more structured but is efficient.

    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?

    Describes return as list of seat offerings with sorting and pagination, but lacks detail on fields in the output. With no output schema, more detail would be beneficial.

    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 covers the single parameter (page) fully. Description adds no new parameter info, so 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?

    Clearly states it gets all seat offerings, with sorting and pagination details. Distinct from sibling tools like get_specific_seat_offering and get_seat_offerings_that_user_is_member.

    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?

    Implies usage for listing all offerings but does not explicitly contrast with alternatives like the more specific sibling tools.

    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 provide readOnlyHint, idempotentHint, and destructiveHint. Description adds the HTTP method and emphasizes 'READ-ONLY', but does not detail potential behaviors like pagination, error handling, or response structure beyond 'returns a list'. 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?

    Description is very concise: three lines with a clear label, HTTP method, and purpose. Every sentence adds value without redundancy. Front-loaded with emoji and method for quick scanning.

    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 low complexity (1 param, no output schema, no nested objects) and the annotations covering safety, the description is nearly complete. It states it returns a list, but could hint at response structure or pagination. Minor gap but acceptable for a simple read tool.

    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 provides 100% description coverage for the single parameter 'id' ('User Id or email (encoded string)'). Description adds no further meaning beyond what the schema already states, so the baseline score of 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?

    Description clearly states the action ('Get') and resource ('user groups that a user is member of'), and specifies it returns a list of all user groups for the given user. This distinguishes it from siblings like 'get_user_groups' (which likely returns all groups) and other per-user getters.

    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?

    No explicit guidance on when to use this tool vs. alternatives like 'get_user_segments' or 'get_user_roles'. The context is implied by the tool name and description, but lacks 'when not to use' or references to alternative tools.

    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 and idempotentHint=true. The description adds value by detailing that the response includes assigned resources per role (e.g., courses for instructor). This explains the scope beyond just the role name.

    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 concise, front-loaded with a summary line and emoji, then provides a detailed explanation of the return value. Every sentence is purposeful and adds value.

    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?

    With no output schema, the description adequately explains the return value (user role and assigned resources). It lacks mention of error handling or permissions, but as a read-only tool with annotations, it is sufficiently 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?

    The input schema covers 100% of parameters with a description for 'id' as 'User Id or email'. The description does not add new meaning or constraints beyond the schema, so 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 'Get user role of a user' and elaborates on what is returned (role and assigned resources). It distinguishes itself from sibling tools like get_user_roles by specifying a single user and including resource details.

    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 does not provide guidance on when to use this tool over alternatives such as get_user_roles or other user-related tools. No when-not or explicit context is given.

    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 indicate write, non-destructive, idempotent. Description adds return of updated resource but does not discuss partial updates, validation, or error handling.

    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 short sentences, no fluff, directly to the point. Front-loaded with purpose.

    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?

    With no output schema, the description mentions the response. It lacks detail on partial updates but is adequate for a simple update tool.

    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 100%, so the description adds no extra meaning beyond the well-documented parameters. Baseline 3 applies.

    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 verb 'Update' and the resource 'course', with specificity about using the course id. It distinguishes from sibling tool 'create_course'.

    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 usage for updating a course but provides no explicit guidance on when to use vs alternatives, prerequisites, or partial update behavior.

    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 provide readOnlyHint and idempotentHint. The description adds useful behavioral context: pagination with a limit of 20 per page, and that it retrieves grades for all enrolled users. No contradictions.

    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 extremely concise: three lines including a tag, a short title, and a sentence. No redundant information. Each part adds value.

    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?

    The tool has 7 parameters but no output schema. The description explains the basic behavior and pagination, but does not describe the return format or fields of grade objects. For a data retrieval tool, this is a minor gap.

    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 100% with good descriptions for each parameter. The description does not add significant new meaning beyond what the schema provides, except for implying that the result is paginated. 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 action (retrieves), resource (grades), and scope (all enrolled users in a course). It distinguishes from sibling tools like get_course or get_users_per_course by focusing specifically on grades. The verb 'Get' matches the name.

    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 use for retrieving course grades but does not explicitly state when to use vs alternatives. No exclusions or prerequisites are mentioned. Given the tool's specificity, the usage context is clear but not formally guided.

    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 indicate readOnlyHint and idempotentHint. The description adds that results are sorted by most recent and paginated with 20 per page, providing behavioral context beyond 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?

    The description is concise, front-loaded with a READ-ONLY tag and endpoint, and uses two clear sentences. No unnecessary words.

    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?

    The description explains pagination and sorting but does not specify the structure of returned customer objects. Since there is no output schema, providing typical fields would improve completeness.

    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 100% and both parameters are well-described. The description adds that results are paginated with a limit of 20, but does not add further semantic meaning.

    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 it retrieves customers for a given affiliate, with ordering and pagination details. It distinguishes from similar tools like get_leads_per_affiliate by specifying 'customers'.

    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 usage for retrieving customers per affiliate but does not explicitly state when not to use it or mention alternatives such as get_leads_per_affiliate.

    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?

    In addition to annotations (readOnly, idempotent, not destructive), description explains pagination, sorting by creation date, default limit of 50, and AND logic for filters.

    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?

    Front-loaded with key info (read-only, list, sorting, pagination). Some verbosity from emoji and line breaks, but overall efficient.

    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 8 parameters with full schema coverage and no output schema, description adequately covers behavior (pagination, sorting, filtering logic) for a list tool.

    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 covers all 8 parameters with descriptions. Description adds context about filtering and AND operator but does not provide additional detail beyond 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?

    Description clearly states it retrieves a list of all payments, sorted and paginated. Distinguishes from sibling get_payment (singular) by indicating scope.

    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?

    Describes when to use (listing payments) and filtering behavior, but does not explicitly exclude alternatives or mention when to use sibling tools like get_payment.

    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 declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety. The description adds that it is a GET endpoint and returns all coupons, but lacks details like pagination, authentication, or rate limits. 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?

    The description is extremely concise: a header line with method and path, a one-line title, and a single explanatory sentence. No wasted words, and key info is 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?

    No output schema exists, but the description does not detail the response format or structure of coupons. For a simple read endpoint, this is a minor gap. Annotations cover safety, so it's adequate but not comprehensive.

    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 100% with one parameter (pid). Description mentions 'promotion id' but adds no meaning beyond the schema. With full schema coverage, 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 verb ('Get') and resource ('promotions coupons'), specifying it returns all coupons for a given promotion ID. This distinguishes it from siblings like get_promotion (single promotion) and create_coupon_promotion (not read).

    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 implies usage: when you need coupons for a specific promotion. It provides clear context but does not explicitly mention when not to use or name alternatives. The purpose is clear enough for an agent to decide.

    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 declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by specifying the HTTP method (GET) and the alphabetical ordering of results, but does not deeply expand on behavior beyond what annotations cover. No contradictions.

    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 extremely concise: three short sentences that front-load the purpose and include useful metadata (read-only indicator, endpoint). Every sentence adds value 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 simplicity (read-only, list retrieval), the description sufficiently covers the return format (list of roles in alphabetical order) and scope (school-level). Annotations provide safety context. No output schema exists, but the description implies a list of role objects, which is adequate for this tool.

    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?

    Input schema coverage is 100% with both parameters described. The description does not add any additional meaning or context beyond the schema descriptions, meeting the baseline for full 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?

    Description clearly states the tool retrieves all user roles, with specific verb 'Get all' and resource 'user roles'. It also specifies additional details like alphabetical ordering by title, making the purpose unambiguous. Although it does not explicitly differentiate from sibling tools like 'get_user_role_user', the scope of 'all roles' is distinct and evident.

    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 usage for retrieving the full list of user roles, but provides no explicit guidance on when to prefer this tool over siblings (e.g., get_user_role_user for a specific user's roles) or when not to use it. The context is clear but lacks exclusion criteria.

    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 provide readOnlyHint, idempotentHint, destructiveHint. The description adds behavioral details: sorted order by creation date, paginated with default limit of 10 users per page. This provides useful context beyond 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?

    The description is concise, front-loaded with a READ-ONLY badge and endpoint, and uses three clear sentences. No unnecessary information, and the structure aids readability.

    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?

    The description explains the output (list of users, sorted, paginated) but does not detail the user object structure or fields. Given no output schema, more detail on response format would improve completeness. However, the tool's purpose is sufficiently clear for basic usage.

    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 100%, so parameters are well-documented in schema. The description adds that the default limit is 10 users per page, which is not in the schema for 'items_per_page' (no default set). This is a minor addition, but overall the description does not significantly enhance parameter understanding 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 retrieves users of a community space, specifying the endpoint and behavior (sorted, paginated). It distinguishes from sibling tools like get_community_space (space details) and add_invite_users_community_space (mutating).

    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 usage for retrieving user lists from a community space, but does not explicitly state when to use this tool over similar get_* tools. No exclusions or alternatives are mentioned, leaving the agent to infer context.

    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, idempotentHint, and destructiveHint. The description adds behavioral details: sorted order (most recently created first) and pagination with a limit of 20 per page, which are beyond the annotations. No contradiction.

    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 concise and front-loads the purpose. It includes some extraneous elements like emoji and HTTP path, but overall it is efficient and well-structured.

    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 no output schema, the description covers pagination and ordering. It could mention error handling for invalid product IDs, but for a read-only list tool, it is reasonably 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 100% with descriptions for all parameters. The description does not add additional meaning beyond the schema; it only references product_id and product_type indirectly. 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 'Get all users by product' and elaborates that it retrieves users with access to a specific product, sorted by most recently created and paginated. This distinguishes it from sibling tools like get_users or get_users_per_course.

    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 does not explicitly state when to use this tool versus alternatives. It implies usage for retrieving users by product but lacks guidance on exclusions or scenarios where other tools might be more appropriate, given many similar sibling tools.

    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. Description adds pagination details (default 20 per page) and sort order (most recent first), which are beyond annotations.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description includes a redundant prefix line (emoji, tags, endpoint) that partially duplicates annotations. Core content is clear but could be more concise.

    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?

    The description explains core functionality and pagination but lacks details about the response structure (e.g., what fields are returned for each user). This is notable since no output schema is provided.

    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 100% with clear parameter descriptions. The description adds the default limit of 20 per page, which is not in the schema, providing extra value.

    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 retrieves members of a user group, with specific resource and action. It distinguishes from siblings like add/remove user group and other get_users_* tools.

    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 provides implied usage but no explicit when-to-use or when-not-to guidelines compared to sibling tools. No alternatives mentioned.

    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 write and non-destructive nature. The description adds valuable behavioral details: returning affected users (excluding duplicates) and the conditional invitation logic. It does not cover side effects like notifications or rate limits, but the added context is sufficient.

    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 three sentences, front-loading the action and endpoint. Every sentence adds value: emoji + HTTP method, purpose, behavioral detail and return value. No fluff.

    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?

    With no output schema, the description partially covers return value (array of affected users) and conditional behavior. It omits error cases, input limits, and authentication requirements, but for a moderate-complexity tool, it is fairly 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 100%, so baseline is 3. The description reiterates the schema's parameter descriptions (uids as identifiers/emails) without adding new constraints, examples, or deeper semantics about usage.

    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 adds/invites users to a community space, with a specific verb and resource. It distinguishes from siblings like 'remove_user_community_space' and other user-related tools by focusing on community space membership.

    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 explains behavior based on the 'is_invitation_required' property, providing context for when invitations are sent vs direct addition. However, it lacks explicit when-not-to-use guidance and does not mention alternatives or prerequisites like permissions.

    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 indicate write operation, non-idempotent, not destructive. Description adds that it creates data and returns the created Course resource. No side effects or permissions disclosed, but sufficient given 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?

    Description is concise and front-loaded with action type, endpoint, and purpose. Only two sentences providing essential information without unnecessary 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?

    Description covers purpose and response. No output schema but states return value. Could include permissions or context, but for a straightforward creation tool, it is adequately 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 100% with descriptions for all parameters. The description does not add extra meaning beyond the schema. 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?

    Description clearly states 'Create a course' and specifies the HTTP method and endpoint. It distinguishes itself as a create operation among many course-related tools like update_course.

    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?

    No explicit guidance on when to use this tool versus alternatives. The purpose is implied as creating a new course, but no conditions or prerequisites are mentioned.

    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 indicate destructive, but description adds that deletion is asynchronous, providing valuable behavioral context beyond annotations.

    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?

    Reasonably concise; minor redundancy in repeating 'Deletes a user group' but includes useful extra info like emoji and HTTP method.

    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?

    Sufficient for a simple deletion tool with one parameter and no output schema. Includes async behavior, completing the 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 covers 100% of parameters with clear description. Description adds no extra meaning beyond 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?

    Clearly states the verb 'deletes' and resource 'user group'. Distinguishes from siblings like create_user_group and update_user_group.

    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?

    Implied usage for deleting a user group, but no explicit guidance on when to use vs alternatives, or prerequisites.

    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, idempotentHint, and destructiveHint. The description adds pagination (20 per page) and sorting (most recent first), which goes beyond annotations. However, it does not detail response format or error behavior.

    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 concise, starting with an emoji and label, followed by a one-line summary and necessary details. No superfluous sentences.

    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 simple list tool with pagination, the description covers the key aspects (sorting, pagination limit). However, without an output schema, more detail on the bundle structure could be helpful.

    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 100% with a clear description for the 'page' parameter. The main description adds no extra meaning, so baseline score of 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 'Get all bundles', uses specific verb+resource, and distinguishes from sibling 'get_bundle' by indicating plurality and including pagination and sorting details.

    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 listing bundles but does not explicitly state when to use this tool versus alternatives like 'get_bundle' or other list tools. No when-not or alternative guidance provided.

    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, idempotentHint=true, and destructiveHint=false. The description adds value by detailing pagination (limit 20), sorting order, the AND combination of query parameters, and the requirement of at least one filter. These details go beyond the annotations.

    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 front-loaded with the action 'Get certificates' and a summary line. It includes relevant details in a structured way, though it could be slightly more concise. The header with emoji and HTTP method adds clarity.

    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?

    Given the complexity (3 optional params, pagination, sorting) and no output schema, the description covers pagination behavior, sorting, and filter logic. However, it lacks details on the certificate object structure and has a minor typo ('most recently created user' instead of 'certificate'), which slightly reduces completeness.

    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?

    Input schema coverage is 100% with good descriptions for each parameter. The description adds context that multiple parameters are combined with AND logic and that at least one is required, but it does not elaborate on individual parameter semantics beyond the schema. Baseline is 3, and the added value is marginal.

    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 'Get certificates' and specifies it returns a sorted, paginated list of certificates. It uses a specific verb and resource, and distinguishes itself from sibling tools as the only certificate-specific getter.

    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 provides clear context: it lists certificates sorted by most recently created, paginated with a limit of 20, and requires at least one query parameter. It explains that multiple filters are combined with AND logic. However, it does not explicitly state when not to use this tool or compare to 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?

    Annotations already indicate readOnlyHint, idempotentHint, destructiveHint. The description adds behavioral context: sorting order (most recent first), pagination limit (20 per page), and the HTTP endpoint (GET /v2/affiliates/{id}/leads). It does not contradict 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?

    The description is very concise: two sentences plus a header line. Each sentence adds meaningful information (read-only, endpoint, retrieval scope, sorting, pagination). No superfluous text.

    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 no output schema, the description adequately covers the behavior: what is returned (leads per affiliate), in what order (sorted by creation date descending), and pagination (20 per page). It does not mention error cases or the exact structure of lead objects, but the essential behavior is clear.

    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 100% with descriptions for both 'id' and 'page'. The description adds context about pagination (sorted order, limit 20) but does not significantly enhance parameter understanding beyond what the schema provides.

    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 retrieves all leads per affiliate, with explicit sorting (most recent first) and pagination (20 per page). It distinguishes from siblings like 'get_leads' and 'get_customers_per_affiliate' by specifying the resource and filtering by affiliate id.

    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 does not explicitly state when to use this tool versus alternatives like 'get_leads' or 'get_customers_per_affiliate'. It implies the context (per affiliate) but lacks guidance on when not to use it or prerequisites.

    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 provide readOnlyHint, idempotentHint, and destructiveHint. The description adds the HTTP method and endpoint path, which aligns with these hints but does not provide additional behavioral context beyond what annotations convey.

    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 very concise: a single emoji-prefixed header line followed by two short sentences. Every sentence adds value, and the key 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?

    The tool is simple with one parameter and good annotations. The description clearly states what it returns ('the subscription plan'). Although it doesn't detail the return structure, it is sufficient for an agent to understand the purpose.

    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 100% with a clear description for the 'id' parameter. The tool description does not add further meaning to the 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 'Get subscription plan' and specifies it returns the plan identified by the provided ID. This distinguishes it from the sibling 'get_list_subscription_plans' which lists all plans.

    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 implies use when you have a specific subscription plan ID. It does not explicitly state when not to use it or mention alternatives, but the context is clear for a simple retrieval tool.

    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 declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the HTTP endpoint (GET /v2/users/segments) and explicitly labels it READ-ONLY, which is consistent but adds little beyond the 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?

    The description is highly concise: a single line with endpoint, a one-line purpose, and a one-line result. Every sentence is essential and 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?

    Given zero parameters, no output schema, and comprehensive annotations, the description fully explains what the tool does (returns all user segments). There is no missing context.

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

    Parameters5/5

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

    Tool has no parameters, so schema coverage is 100%. The description needs to add no parameter info, and it correctly avoids extraneous details.

    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 retrieves user segments, with a specific verb 'get' and resource 'user segments'. It distinguishes itself from sibling tools like 'get_users' or 'get_user_groups' by focusing on segments.

    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?

    No guidance on when to use this tool vs alternatives. It simply states what it does without providing context for selection among many similar get_* tools.

    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 provide readOnly, idempotent, and non-destructive hints. The description adds behavioral details: users are sorted by most recent first and paginated with a limit of 20 per page. This adds value beyond 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?

    The description is extremely concise: three sentences including an emoji and API path. It front-loads the read-only indicator and provides all necessary information without fluff. Every sentence earns its place.

    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 no output schema, the description adequately explains the return format (sorted, paginated, 20 per page). It covers pagination behavior and sorting order. Missing details on user fields but acceptable for a retrieval tool with good annotations.

    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 100%, with descriptions for both parameters (page and segment_id). The description mentions 'provided segment id' but adds no extra meaning beyond the schema. Baseline 3 is appropriate as the schema already 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 it retrieves all users by segment with sorting and pagination details. The verb 'Retrieves' and resource 'users in the segment' are specific, and the tool name aligns perfectly with the function. It distinguishes from siblings like get_users by its segment filter.

    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 usage for segment-based user retrieval but does not explicitly contrast with alternatives like get_users (which fetches all users) or other segment-related tools. No guidance on when not to use is provided.

    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 indicate readOnlyHint=false (write), and the description reinforces this with 'WRITE · creates data' and 'Updates grades and feedback'. It also mentions the side effect of calculating new grades. No contradictions found, but it could detail the state of the submission after review.

    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 extremely concise: a header line and two sentences. Every part adds value, and it is front-loaded with the emoji and HTTP method.

    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 moderate complexity (nested objects, no output schema), the description covers the core action. It lacks output format details (no output schema exists), but the example partially compensates. Prerequisites are not mentioned, but not critical.

    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 100% with descriptions for all parameters. The description adds an example and overall context but does not significantly elaborate beyond the schema's own descriptions. Baseline of 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 it reviews a user's assessment submission by updating grades and feedback for each question and calculating new grades. It includes the HTTP method and path, and distinguishes itself from sibling tools like get_assessment_responses by its write nature.

    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 provides the HTTP method and path, and states it updates grades and feedback, but does not explicitly specify when to use this tool versus alternatives (e.g., other assessment update tools). The guidance is minimal and implied.

    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, idempotentHint, destructiveHint. Description adds value by specifying HTTP method (GET) and what is returned (sections and learning activities), which is beyond 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?

    Very concise: a header line with emoji and HTTP method, then two clear sentences. No wasted words.

    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 single parameter, no output schema, and annotations covering safety, the description fully explains what the tool does and returns. It is complete for an agent to select and invoke.

    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?

    Only one parameter 'id' with schema description 'Course title Id'. Schema coverage is 100%, so baseline 3. Description adds no extra semantic info 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?

    Clearly states verb 'Get', resource 'contents of a course', and includes details that it returns sections and learning activities. Distinguishes from siblings like get_course and get_course_grades.

    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?

    No explicit when-to-use or when-not-to-use instructions. While the purpose is clear, the description does not mention alternatives or contexts where this tool should be preferred over other course-related tools.

    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 provide readOnlyHint, idempotentHint, etc. The description adds behavioral details about sorting order and pagination size, which go beyond annotations. No contradiction.

    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 very concise, with only 4 lines. It front-loads key information (emoji, endpoint) and every sentence is functional and non-redundant.

    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?

    The tool is simple (one param, no output schema). The description explains pagination and ordering. Lacking return object details, but for a list retrieval tool with good annotations, it's adequately complete.

    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?

    Only one parameter (page) with full schema coverage. The description adds the page size limit (20), which is not in the schema, adding value beyond the default baseline.

    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 retrieves a list of affiliates, specifying sorting (most recent first) and pagination (limit 20 per page). It distinguishes from sibling tools like get_affiliate_payments by focusing on affiliates list.

    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 usage for listing affiliates but does not explicitly state when to use this tool over alternatives. No direct guidance on when not to use it or comparison to siblings.

    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 it as read-only, idempotent, and non-destructive. The description adds valuable behavioral details: sorted order (most recent first), pagination with limit of 20, and the exact HTTP method/path. No contradictions 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.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise and well-structured, with a header line followed by a brief explanation. However, there is slight redundancy (repeating 'Get completed affiliate payouts'), but overall it is efficient and 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?

    For a simple, one-parameter tool with no output schema, the description is remarkably complete. It covers what the tool returns (list of completed payouts), ordering, pagination, and even the HTTP path. No gaps remain.

    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?

    The input schema has 100% coverage for the single parameter 'id', with a clear description. The tool description does not add additional meaning beyond restating 'the provided affiliate', so it meets the baseline but adds no extra value.

    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 'Get completed affiliate payouts' and provides extensive context including the HTTP endpoint, sorting order, and pagination. It effectively distinguishes this tool from siblings like get_due_affiliate_payouts or get_upcoming_affiliate_payouts by explicitly targeting completed payouts.

    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 when to use (for completed payouts) but does not explicitly mention alternatives or when not to use. It lacks guidance compared to siblings like get_due_affiliate_payouts, so the agent must infer usage from the tool name alone.

    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 and idempotentHint. The description adds behavioral details: returns sorted list (most recent first), paginated with 20 leads per page, and that it fetches from the school scope.

    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 concise (three sentences), front-loaded with a header including read-only indicator, endpoint, and resource, then clear details. No redundant information.

    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 simple one-parameter tool and annotations covering safety, the description provides sufficient context about output (list of leads, sorted, paginated). It could mention the structure of each lead, but not strictly necessary.

    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 100% for the single parameter 'page'. The description adds context about pagination and the 20-lead limit, enhancing understanding of how the parameter works.

    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 it retrieves leads, using a specific verb ('Get') and resource ('leads'). It distinguishes from sibling tool 'get_leads_per_affiliate' by specifying it returns all leads of the school without affiliate filtering.

    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 usage for getting all leads but does not explicitly compare with alternatives like 'get_leads_per_affiliate'. No when-to-use or when-not-to-use guidance is provided.

    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, idempotentHint, and destructiveHint=false. The description adds beyond this by specifying sorting order (most recent first), pagination, and a default limit of 20 users per page. No contradictions 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?

    The description is very concise, with the key purpose stated upfront ('Get all user groups') followed by essential behavioral details in two sentences. No unnecessary information or repetition.

    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 simple read-only list tool with one optional parameter, the description covers the core functionality (returns all groups), ordering, pagination, and default limit. It lacks explicit mention of output structure, but no output schema exists, so the description is adequate.

    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 100%, describing the page parameter. The description adds meaning by stating the default page limit (20 users), which is not in the schema, and implicitly explains the effect of pagination on the results.

    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 explicitly states 'Get all user groups' and specifies that it returns all user groups of the school, sorted by recency, which clearly distinguishes it from siblings like get_user_group (single group) and get_user_groups_that_user_is_member (filtered by user).

    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 usage for retrieving all user groups, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., get_user_group for a specific group or get_user_groups_that_user_is_member for user-specific groups). No exclusions or context are mentioned.

    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, idempotentHint, destructiveHint. Description adds that it returns all courses, paginated with default limit 20, providing extra 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?

    Compact and efficient: emoji, method, purpose, then details. Every sentence serves a purpose without 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?

    No output schema, but description specifies return content: progress for all courses, breakdown per activity, paginated. Adequate for a read-only list endpoint.

    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 covers 100% of parameters with descriptions. Description adds pagination default (20 per page) but does not significantly enhance parameter meaning beyond 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?

    Clearly states 'Get user progress' and explains it returns progress for all enrolled courses with breakdown per learning activity. Distinct from sibling get_user_progress_per_course which is per course.

    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?

    Explicitly marks as READ-ONLY and Reporting, indicating safe usage. Does not explicitly state when to avoid or compare to siblings, but context implies it for overall progress.

    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 it as read-only and idempotent. The description adds valuable behavioral details: sorted order (most recent first) and pagination with a default limit of 20 per page, enhancing 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 concise at 4 sentences, front-loaded with an emoji and method info, and every sentence adds value without 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?

    Given no output schema, the description explains the sorting and pagination but could elaborate on the response structure (e.g., user fields). However, it is sufficient for a straightforward list tool.

    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?

    The input schema covers both parameters (id and page) with descriptions. The description does not add additional meaning beyond the schema, but since coverage is 100%, this is adequate.

    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 retrieves all users of a specific seat offering, with sorting and pagination details. It distinguishes itself from sibling tools like get_seat_offerings by focusing on users of a particular seat.

    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 usage for fetching users of a seat offering but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.

    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, idempotentHint, and destructiveHint. The description adds behavioral details: GET endpoint, sorted order, pagination with default limit, and AND logic for filters. This provides additional value beyond annotations.

    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 relatively concise and front-loaded with the purpose and endpoint. The repetition of 'Get community posts' is minimal waste. It efficiently conveys key behaviors.

    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 absence of an output schema, the description adequately explains the return value (list of posts, sorted, paginated). It covers the main behavior and filter options. For a read tool with well-documented parameters, this is complete enough.

    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 100% with descriptions for all 6 parameters. The description adds that multiple parameters are combined with AND logic, which is not in the schema. This adds meaning beyond what the schema provides.

    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: it returns a list of community posts, sorted by most recent, paginated. The inclusion of endpoint details and behavior distinguishes it from the sibling 'get_community_post' (singular) and other 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?

    The description explains the tool's functionality (reading posts) and the use of filters with AND logic. While it doesn't explicitly state when not to use it or mention alternatives, the context of sibling names implies differentiation. It's clear for a simple read tool.

    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 adds the HTTP method and confirms read-only behavior, complementing annotations like readOnlyHint and idempotentHint. It does not contradict annotations and provides sufficient context for safe invocation.

    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 concise (four lines) with front-loaded key information (READ-ONLY, HTTP method). Every sentence adds value 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 single parameter and lack of output schema, the description fully covers the tool's purpose and behavior. It tells the agent what to expect and how to use 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?

    The only parameter 'id' is already fully described in the input schema with a clear description. The description does not add additional semantics beyond what the schema provides, so 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 it retrieves a specific community space by ID, using the verb 'Get' and specifying the resource. It distinguishes from sibling tools like create_community_space or delete_community_space.

    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 indicates it is a read-only GET operation, but it does not explicitly mention when to use it over alternatives like get_community_spaces for listing all spaces. However, it is clear that it retrieves a single space by ID.

    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 indicate readOnlyHint, idempotentHint, destructiveHint=false. The description adds pagination details (50 per page, most recent first, last page behavior) that go beyond annotations, with no contradictions.

    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 well-structured with a header and details. It is slightly verbose due to the emoji and endpoint line, but overall concise and 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?

    The description covers purpose, pagination, and sorting. However, without an output schema, the absence of return value details is a minor gap. The tool is still usable but would benefit from specifying the returned fields.

    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 100%, so the description doesn't need to explain parameters. However, it adds context about pagination and sorting, which enhances understanding of the 'page' parameter.

    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 the verb 'Get' and resource 'coupon usage' with promotion id and coupon code. It differentiates from siblings by detailing that it returns usage details with associated payments in sorted order.

    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 provides basic context (GET, read-only) but lacks explicit guidance on when to use this tool versus other get tools. No comparison or exclusion criteria are given.

    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 indicate read-only, idempotent, and non-destructive behavior. The description adds transparency about pagination, sorting order, and the HTTP endpoint, which are not covered by 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?

    The description is extremely concise with two sentences, plus an emoji and endpoint. Every element adds value: read-only indicator, endpoint, pagination behavior, sorting, and limit.

    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?

    For a simple list tool with one parameter and no output schema, the description covers all key behaviors: what is returned (list of promotions), sorting, pagination with limit, and HTTP method. It is 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?

    The input schema already fully describes the single 'page' parameter with a comprehensive description, so the tool description adds no additional parameter semantics beyond what the schema provides.

    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 retrieves all promotions of the school, distinguishing it from the sibling 'get_promotion' which targets a specific promotion. It includes specific details like sorting and pagination.

    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 implies usage for listing all promotions with pagination, but does not explicitly contrast with the sibling 'get_promotion' for individual retrieval. It provides clear context on when to use the 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?

    Adds valuable context beyond annotations: pagination, sorting order, default limit, HTTP method, and filter combination logic. No contradictions with annotations (readOnlyHint, etc.).

    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?

    Well-structured with key info front-loaded (read-only, users, GET). A few sentences, no waste, though could be slightly more concise without losing clarity.

    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?

    Covers core behavior well: listing, sorting, pagination, filtering. Lacks error handling or response format details but output schema is absent. Appropriate for the complexity.

    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 100% with detailed parameter descriptions. The description adds minimal parameter-specific value beyond explaining the AND behavior for multiple filters. Adequate but not enhanced.

    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 'Get all users' and specifies it returns a paginated list sorted by most recent creation. It distinguishes itself from sibling tools like 'get_user' or filtered user lists by being the general list endpoint.

    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 clarity on pagination, sorting, and the AND behavior of multiple filters. Does not explicitly state when to use alternatives, but the context is sufficient for an agent to infer usage.

    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 read-only nature, pagination (20 per page), sorting order, AND operator for params, and behavior when page number exceeds maximum. Annotations confirm readOnlyHint, idempotentHint, and non-destructive nature, with no contradiction.

    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 moderately concise, front-loaded with a summary line including read-only status and HTTP method. It contains no wasted words but could be slightly tighter.

    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?

    The description explains the list behavior and parameter interaction but lacks details about the response structure (fields of each subscription). No output schema to rely on, so a slightly higher completeness would be beneficial.

    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 100% with descriptions for each parameter. The description adds context about pagination and AND filtering, but does not significantly enhance individual parameter meaning 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 it retrieves user subscriptions, specifying they are sorted by creation date descending and paginated. It distinguishes from sibling tools like get_subscription_plan or get_list_subscription_plans by focusing on user-specific subscriptions.

    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 explains how to refine the list using query params with AND logic, but does not explicitly state when to use this tool versus alternatives. However, the context of user subscriptions 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?

    Annotations already declare read-only, open-world, idempotent. Description adds sorting behavior (oldest first). No contradictions. Additional detail on return order adds value beyond 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?

    Three short sentences, each adds value: status, scope, and return order. No wasted words.

    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 zero parameters and no output schema, the description provides all necessary details: purpose, scope, and ordering. No gaps.

    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?

    No parameters exist, and schema coverage is 100%. Description does not need to add parameter info. Baseline 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?

    The description clearly states 'Get all community collections' and specifies it's for the school and lists sorted by oldest first. It distinguishes from sibling tools like get_community_spaces by naming the specific resource.

    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 implies usage for retrieving community collections with clear context. No explicit exclusions or alternatives, but context is sufficient for an agent to know when to use it.

    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 declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral details: results are sorted by creation date descending, paginated with a limit of 50 per page, and query params are ANDed. This goes beyond 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?

    The description is short and well-structured with an emoji, endpoint, and clear sections. Every sentence adds value without 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?

    Given the tool's complexity (4 optional parameters, no output schema), the description explains key behaviors like sorting, pagination, and filtering logic. It lacks details on returned fields, but the schema covers parameters well. Overall adequate for the context.

    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?

    Input schema covers 100% of parameters with descriptions. The tool description adds the critical AND logic for multiple parameters, which is not present in schema. This provides additional semantic guidance, justifying a score above the baseline of 3.

    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 explicitly states it retrieves 'active installments', uses a specific verb 'Get', and includes the endpoint path. The verb and resource are clear, distinguishing it from sibling tools which focus on other entities like users, courses, or payments.

    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 provides guidance on how to use query parameters and explains that multiple params are combined with AND logic. However, it does not explicitly state when to use this tool over alternatives, though the purpose is clear from the name and context.

    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 adds significant behavioral details beyond annotations: sorted order (most recent first), pagination, and default limit of 20 users per page. Annotations already indicate readOnlyHint=true, destructiveHint=false, so no contradiction. Additional context about pagination and ordering is valuable.

    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 concise (4 lines) with clear structure: an emoji+HTTP header, a one-line summary, and a detailed sentence. It front-loads key info (read-only, course scope) and avoids unnecessary fluff. Every sentence serves a purpose.

    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 no output schema, the description explains sorting and pagination but does not describe the user object fields returned. For a read-only list tool with annotations (readOnlyHint, openWorldHint, idempotentHint), this is adequate but could be improved by mentioning common fields (e.g., id, name, email).

    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 covers all 3 parameters with descriptions (100% coverage), so baseline is 3. The description adds value by explaining the default page size (20) and pagination behavior, which is not in the schema (items_per_page has no default). This enhances understanding of the list's structure.

    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 it retrieves all users enrolled in a course specified by course id. It uses specific verbs ('Retrieves all users') and resource ('course'), and distinguishes from sibling tools like get_users (which gets all users without course filter) and get_users_community_space (different resource).

    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 implies usage for course-specific user enumeration with 'Get all users per course', providing clear context. However, it does not explicitly state when not to use it or mention alternative tools like get_users for non-course users. The sibling tools list offers contrast but no direct guidance.

    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

Learnworlds-MCP MCP server

Copy to your README.md:

Score Badge

Learnworlds-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/ohneben/Learnworlds-MCP'

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