Skip to main content
Glama
zcube

Penpot MCP Server

by zcube

Server Quality Checklist

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

  • Disambiguation3/5

    Many tools have distinct purposes, but there is notable overlap among shape querying tools (get_page_shapes, query_shapes, search_shapes) and file listing tools (list_files, search_files). Descriptions help differentiate them, but the boundaries are not always crisp.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun pattern (list_, get_, create_, update_, delete_). Minor deviations like 'add_page' instead of 'create_page' and 'query_shapes' vs 'search_shapes' are present but not chaotic.

    Tool Count1/5

    With 81 tools, the server is extremely overloaded. The scope spans files, shapes, teams, comments, media, fonts, snapshots, libraries, webhooks, and profile, which could be split into separate servers or consolidated. This makes the tool surface overwhelming.

    Completeness2/5

    The domain is broad but has significant gaps: project management lacks get/update/delete operations, and page management lacks update/delete. Shape operations are missing copy/duplicate/group. These gaps will cause agent failures when trying to perform common design workflows.

  • Average 3.3/5 across 81 of 81 tools scored. Lowest: 2.1/5.

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

    • 0 of 1 community issues answered or closed in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is failing
  • 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

  • Behavior1/5

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

    With no annotations, the description must disclose behavioral traits, but it only says 'Delete a file.' It fails to mention whether the deletion is permanent, whether fileId refers to an internal identifier, what happens to associated data, or whether special permissions are needed. This is a serious gap for a destructive operation.

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

    Conciseness4/5

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

    The description is extremely concise with no filler words, and it front-loads the core action. However, it is so terse that it provides no structural or contextual detail, making it less 'appropriately sized' for a destructive tool.

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

    Completeness1/5

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

    For a destructive operation with no annotations and no output schema, this description is completely inadequate. It omits any mention of irreversibility, side effects, response behavior, preconditions, or error handling, leaving the agent without necessary context to invoke it safely.

    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 fileId, so the schema already documents the parameter. The description adds no extra meaning beyond what the schema provides, but the high schema coverage establishes the baseline of 3.

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

    Purpose2/5

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

    The description 'Delete a file' is a direct restatement of the tool name 'delete_file' and adds no new information. It does not specify the file scope, system context, or distinguish this from related file operations like delete_file_snapshot.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives such as delete_team or delete_comment, nor any mention of important context like permanent vs. reversible deletion or required permissions. The description simply states the action without usage conditions.

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

  • Behavior1/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create a new team' adds no information about side effects, permissions, idempotency, return values, or any operational nuances, making it essentially a restatement of the tool name.

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

    Conciseness2/5

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

    The description is a single short phrase, which is minimal in word count, but it is under-specified and lacks substance. It does not provide enough detail to be considered appropriately concise; it is instead an incomplete description that omits critical context.

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

    Completeness2/5

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

    Given the tool has 3 parameters, no output schema, and no annotations, the description is insufficiently complete. It does not explain what a team is, what the creation process involves, what the response looks like, or how this tool relates to other team operations. The schema covers parameter descriptions but not the broader behavioral context.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the input schema already fully describes the id, name, and features parameters. The description itself adds no parameter-level information, but the baseline of 3 applies since the schema handles parameter semantics effectively.

    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 action 'Create' and the resource 'team', which distinguishes it from sibling tools like create_project or get_team. However, it lacks any additional context about what a team is or what creation entails, so it is clear but not richly detailed.

    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 update_team or get_team. There are no prerequisites, exclusions, or conditions mentioned, leaving the agent without contextual decision support.

    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?

    With no annotations, the description carries full responsibility for disclosing behavioral traits. It only states the action (delete) without mentioning irreversible effects, cascading deletion of comments, permissions required, or any side effects. A delete operation with zero context about consequences is opaque.

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

    Conciseness4/5

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

    The description is a single concise sentence with no fluff, easy to scan. However, it is slightly under-specified; a two-sentence version that adds behavioral context would still be concise and more useful. Still, for a simple tool the size is acceptable.

    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 is a destructive operation with no output schema and no annotations. The description provides no information about return values, error conditions, or what happens to nested comments. Given the minimal context, the description is incomplete for an agent to safely invoke this operation.

    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 single parameter threadId has a schema description "Thread ID" (100% coverage). The tool description adds no extra meaning about how threadId is used or where it comes from. Per the baseline rule for high schema coverage, a score of 3 is appropriate.

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

    Purpose2/5

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

    The description "Delete a comment thread" is essentially a natural-language restatement of the tool name. It provides no additional detail about the scope or effect beyond the name itself, making it tautological. While the resource is clear, it fails to add any distinguishing information relative to the obvious sibling delete_comment.

    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 such as delete_comment or other thread operations. There is no mention of intended use cases, prerequisites, or conditions that would help an agent choose this tool correctly.

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

  • Behavior1/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states the action without explaining side effects, prerequisites, return values, or error conditions. It does not describe what creating a file entails beyond the literal action.

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

    Conciseness5/5

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

    The description is a single concise sentence with no redundancy or fluff. It is appropriately short for the tool's simplicity and every word contributes to the core purpose.

    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?

    While the tool has only three parameters and a clear purpose, the description omits any behavioral or contextual detail such as return value, prerequisites, permissions, or side effects. The schema covers parameters but not usage context. Given no output schema or annotations, the description is under-specified for an agent to understand the tool's full 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?

    The schema provides 100% coverage of the three parameters with descriptions, so the baseline is 3. The description adds no additional meaning beyond the schema; it merely restates that a file is created in a project, which is already encoded in the parameter names and descriptions.

    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 identifies the action (create) and resource (new file), and scopes it to a project, distinguishing it from sibling tools like list_files, get_file, rename_file, and delete_file. It lacks explicit mention of the required projectId/name parameters, but those are in the schema, so the purpose itself is unambiguous.

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

    Usage 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. The description simply states what it does, with no mention of context such as requiring an existing project or distinguishing from create_project. There are no exclusions or alternative tool references.

    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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action 'rename' and does not mention side effects, whether the operation is reversible, permissions required, or what happens to file references. This is insufficient for a mutation tool.

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

    Conciseness2/5

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

    The description is only three words and essentially restates the tool name, providing no additional useful information. It is under-specified rather than appropriately concise, so it does not earn a higher score.

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

    Completeness2/5

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

    For a tool with no annotations and no output schema, the description should explain return values, constraints, or effects on the file. It does none of these, leaving the tool contextually incomplete despite the simple schema.

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

    Parameters3/5

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

    Schema description coverage is 100% (both 'name' and 'fileId' have descriptions). The tool description adds no extra parameter meaning beyond the schema, so the baseline score of 3 applies.

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

    Purpose4/5

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

    The description 'Rename a file' clearly states the action (rename) and resource (file), which is specific enough to distinguish from siblings like create_file or delete_file (there is no other rename tool). However, it lacks scope details such as constraints on the new name or whether it's a display name or path, so it doesn't fully earn a 5.

    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, no exclusions, and no mention of related operations. It is a bare statement with no usage context.

    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?

    With no annotations provided, the description must carry the full burden of behavioral disclosure. It mentions 'relative to each other or to a selection bounds' but is ambiguous about what 'selection bounds' refers to, given no parameter for it. It doesn't state that shapes will be moved, or any side effects. The description contradicts the schema by referencing 'selection bounds' which isn't a parameter, adding confusion.

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

    Conciseness5/5

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

    The description is a single, succinct sentence that front-loads the core purpose. Every word contributes to the meaning without redundancy. It's appropriately concise for a tool with a self-explanatory schema.

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

    Completeness2/5

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

    Given the tool performs mutation (moving shapes) and has no annotations or output schema, the description is too sparse. It fails to explain the effect on shapes, what 'selection bounds' means, or how the alignment types map to behavior. The ambiguous reference to a non-existent parameter leaves the agent with an incomplete model of the tool's operation.

    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 baseline is 3. The description adds minimal semantics beyond the schema, merely reinforcing that multiple shapes are involved. It doesn't clarify the role of each parameter or the meaning of 'selection bounds' relative to the alignment parameter. Thus, it meets the baseline but doesn't exceed it.

    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's function: aligning multiple shapes. It specifies the action ('Align') and the resource ('multiple shapes'), and distinguishes from the sibling 'distribute_shapes' by focusing on alignment rather than distribution. However, it doesn't explicitly differentiate from other shape manipulation tools or clarify that it operates on a single page.

    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 'distribute_shapes'. The description implies you need multiple shapes, but doesn't mention prerequisites, exclusions, or scenarios where another tool would be better. This leaves the agent to infer usage from the name and schema.

    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 are absent, so the description carries the full burden of disclosure. However, it only says 'Clone', omitting side effects (e.g., whether the original is preserved, if this is a deep copy, permission requirements) and any output/return behavior. The schema hints at a target fileId, but the description itself reveals no behavioral nuance.

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

    Conciseness5/5

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

    The description is a single, concise sentence with no filler: 'Clone an existing media object.' It is front-loaded and every word contributes to the purpose.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is significantly under-specified. It fails to explain what the tool returns, the nature of the clone (e.g., target file, local vs. remote), or any limitations. The schema provides parameter definitions but not operational context.

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

    Parameters3/5

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

    Schema description coverage is 100%, with parameters id, fileId, and isLocal each having a clear description. Since the schema does the heavy lifting, the description adds no additional 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.

    Purpose4/5

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

    The description states the action clearly with 'Clone' and a specific resource ('existing media object'). It distinguishes from sibling tools like create_media_from_url by implying duplication of an existing object, but it doesn't explain what 'clone' means operationally (e.g., copy within same file or to another file).

    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 doesn't mention prerequisites (e.g., needing an existing media object), nor does it contrast with create_media_from_url or list_file_media. The agent is left to infer usage from the name and schema.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention side effects, return values, error conditions, or permissions. While 'Create' implies a mutation, the lack of any behavioral context is a significant gap for a tool that creates a persistent object.

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

    Conciseness5/5

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

    The description is a single, direct sentence with no extraneous words. It is optimally concise and front-loaded with the core action.

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

    Completeness2/5

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

    For a mutating tool with no annotations and no output schema, this minimal description is insufficient. It does not explain what happens after creation, how the media object relates to the fileId, or what the response contains. The schema partially compensates, but overall completeness is low.

    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%, with each parameter having a description (e.g., url: 'URL of the image to import', isLocal: 'Whether media is local to file'). The description adds no extra parameter semantics, but the schema adequately covers these details, warranting the baseline score 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 'Create a media object from a URL' clearly states a specific action (create) and resource (media object) with a distinguishing scope (from a URL). It is distinct from sibling tools like list_file_media or clone_media_object, though it does not elaborate on what type of media (e.g., image) despite the URL parameter describing an image.

    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 context about file relationships or required permissions. It simply states the function without any usage direction.

    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?

    There are no annotations, so the description carries the full burden of behavioral disclosure. It only says 'Create', implying mutation, but does not mention permissions, reversibility, duplicate handling, or what is returned. This leaves significant behavioral ambiguity.

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

    Conciseness4/5

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

    The description is a single, front-loaded sentence with no fluff or redundancy. It is concise, though it lacks some potentially useful context that could be added without becoming 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 creation tool, the description adequately states the core action and container. However, with no annotations or output schema, it does not explain return values, required prerequisites, or potential failure modes, making it minimally viable but incomplete.

    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 all three parameters (id, name, teamId) with descriptions, giving 100% coverage. The description adds no extra parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

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

    Purpose4/5

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

    The description uses a specific verb and resource ('Create a new project') and identifies the parent context ('in a team'), which distinguishes it from sibling tools like create_team or list_projects. However, it does not explicitly differentiate it from other create_* tools or define what a project is.

    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, nor are prerequisites mentioned (e.g., the team must exist). The description simply states the action without contextual usage or exclusions.

    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?

    With no annotations, the description carries the full burden of behavioral disclosure. It implies a mutation ('create') but says nothing about permissions required, reversibility, link expiration, page scoping, or return format. The minimal detail leaves the agent with significant unknowns.

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

    Conciseness5/5

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

    The description is a single, clear sentence with every word earning its place. It is front-loaded and appropriately sized for the simple action it conveys.

    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 4 required parameters, embedded enums, and no output schema or annotations, but the description explains nothing about permissions, page selection behavior, or returned link details. It is inadequate for the tool's complexity and leaves too many operational questions unanswered.

    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 meaningful descriptions for each parameter (e.g., whoComment enum, pages array). The description adds no additional parameter semantics beyond what the schema already provides, so the 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 uses a specific verb and resource ('Create a shareable link for a file'), clearly conveying the action. However, it doesn't differentiate from sibling tools like delete_share_link or create_file beyond the obvious 'link' focus, so it's clear but not explicitly distinguishing.

    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 versus alternatives such as delete_share_link or other create tools. The description simply states the action without context or exclusions.

    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?

    There are no annotations, so the description carries the full burden. It only states the action without disclosing side effects, permissions, reversibility, or error behavior. This is a significant gap for a mutation tool.

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

    Conciseness5/5

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

    The description is a single, concise sentence that immediately conveys the core action. It is appropriately sized and front-loaded with no wasted words.

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

    Completeness2/5

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

    With no annotations and no output schema, the description should explain behavior on success/failure, reversibility, or prerequisites. It does none of these, leaving the agent under-informed for a mutation operation.

    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% for both parameters (teamId and memberId), and the description adds no extra meaning beyond what the schema already provides. The baseline 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 action ('Remove') and the resource ('a member from a team'). It distinguishes from deleting the team itself, though it does not explicitly reference sibling tools like leave_team or update_team_member_role.

    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 leave_team or update_team_member_role. The description is purely definitional with no contextual or exclusionary instructions.

    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?

    With no annotations, the description must convey behavioral context itself, but it only says 'Get detailed information about a file'. It does not state that the operation is read-only (though implied), nor does it mention required permissions, error cases, or the nature of the returned information.

    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 entire description is a single, front-loaded sentence of six words. It is appropriately sized for a simple getter and contains no redundant filler.

    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 lack of annotations and output schema, the description is too vague to be complete. It mentions 'detailed information' but doesn't specify what fields are included, whether file content is returned, or any constraints, especially with sibling tools that also retrieve file-related data.

    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 single parameter fileId is described in the schema as 'File ID', and the schema covers 100% of parameters. The tool description adds no additional meaning beyond the schema, but the baseline of 3 applies since the schema is sufficient.

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

    Purpose4/5

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

    The description uses the verb 'Get' with the resource 'detailed information about a file', clearly indicating a read operation for a single file. It doesn't explicitly distinguish among siblings, but 'detailed information' sets it apart from list_files or get_file_libraries.

    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 like list_files, get_file_libraries, or get_file_snapshots. There is no mention of prerequisites or when not to use it; the use case is only implied by the name and generic phrasing.

    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?

    With no annotations, the description must fully disclose behavioral impact. It only states the action and time scope, but does not explain consequences such as reversibility, effect on sync, or any permissions required. The term 'ignore' is ambiguous.

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

    Conciseness4/5

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

    The description is a single sentence with no extraneous words, making it concise and easy to parse. However, the brevity contributes to missing contextual information, so it's not a top score.

    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 lack of annotations and output schema, the description is too sparse to fully inform an agent. It doesn't explain the purpose of ignoring sync status or any side effects, leaving important gaps for a tool with mutation-like 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?

    The input schema provides complete descriptions for both parameters (fileId and date). The description adds little beyond restating the date scope, so it provides no added semantic value over the schema, warranting the baseline score 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 uses a specific verb ('ignore') and resource ('library synchronization status for a file'), with a time qualifier ('at a specific date/time'). It clearly states the action but does not explicitly differentiate from sibling tools like update_file_library_sync_status, though the name itself hints at the distinction.

    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 update_file_library_sync_status or get_file_libraries. No contextual or exclusionary information is given.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action without explaining side effects, permissions, reversibility, or what happens to the file/library relationship. This is insufficient for an agent to understand the operation's impact.

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

    Conciseness4/5

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

    The description is a single, concise sentence that is front-loaded and free of extraneous words. It earns its place by stating the core purpose, though it lacks additional context that could enhance clarity without becoming verbose.

    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 description is minimal and does not cover important contextual aspects like return values, side effects, or the concept of 'component library' (which appears unexplained). Given no output schema and no annotations, the agent is left without enough information to fully anticipate the tool's behavior or response.

    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 fully describes both parameters (fileId and libraryId) with clear descriptions, so the schema provides the necessary meaning. The tool description adds no additional context about parameter usage or relationships beyond the schema, hitting the baseline for high schema 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?

    The description clearly states the action ('Unlink') and the resource ('a file from a component library'), making the tool's purpose immediately understandable. It implicitly distinguishes from the sibling tool 'link_file_to_library' by using the opposite verb, though it doesn't explicitly name that alternative.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus its alternatives, such as 'link_file_to_library' or 'get_file_libraries'. No prerequisites or exclusions are mentioned, leaving the agent to infer usage from the name and schema.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a mutation ('Update') but does not explain whether content is fully replaced, how optional mentions/shareId behave, or what permissions are required. This lack of detail could lead to incorrect usage.

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

    Conciseness4/5

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

    The description is a single sentence with no wasted words, making it concise and front-loaded. However, it is arguably too terse, providing minimal structure or elaboration, but for what it includes, it is efficiently written.

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

    Completeness2/5

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

    Given the tool has 4 parameters, no annotations, and no output schema, the one-sentence description is insufficient for safe invocation. It does not clarify the behavior of optional parameters, whether the update is incremental or wholesale, or any side effects. This is a clear gap for a mutation 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%, so each parameter already has a clear description. The tool description adds no extra semantics beyond saying 'content', which is already covered by the schema's 'New comment content'. Therefore, 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.

    Purpose4/5

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

    The description 'Update a comment content' uses a specific verb ('Update') and resource ('comment content'), making the core purpose clear. It is distinct from sibling tools like create_comment or delete_comment, though it doesn't explicitly differentiate itself from update_comment_thread_status.

    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 does it mention any prerequisites or exclusions. It simply states the action, leaving the agent to infer usage context.

    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?

    With no annotations, the description carries full responsibility for disclosure. It only states the action ('Update') without revealing side effects, reversibility, permission requirements, or what 'sync status' actually entails. There is no mention of what happens to the link or whether the update is destructive.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence that wastes no words. It immediately communicates the action and resource. Despite being minimal, it is appropriately concise for the simplicity of the tool.

    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 no annotations and no output schema, so the description must provide context. It fails to explain what 'synchronization status' means, possible update values, whether a link must already exist, or any return behavior. The description is too sparse for an agent to confidently invoke the tool in a real workflow.

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

    Parameters3/5

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

    Schema description coverage is 100% (both fileId and libraryId have descriptions). The tool description adds no additional meaning to the parameters, so the baseline of 3 applies. The description simply repeats the concept of a file->library link without elaborating on parameter roles.

    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 a specific action ('Update') on a specific resource ('synchronization status of a file->library link'). While it does not differentiate from sibling tools like 'ignore_file_library_sync_status' or 'link_file_to_library', the core purpose is unambiguous and the verb+resource structure is strong.

    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, exclusions, or context. An agent has no information about whether this should be used instead of 'ignore_file_library_sync_status' or when a sync status update is appropriate.

    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?

    With no annotations provided, the description must disclose behavioral traits, but it only states 'Update team information (name)'. It does not mention idempotency, auth requirements, potential errors, or whether the update is a partial or full replacement. This is a significant gap for a mutation tool.

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

    Conciseness4/5

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

    The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple two-parameter tool, though it is so brief that it borders on under-specification.

    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 no annotations and no output schema, so the description must carry full contextual weight. It fails to mention what the tool returns (e.g., updated team object, success message), error conditions, or any side effects. Given the sibling list includes many related team operations, more context is needed for 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 covers 100% of parameters with descriptions for both 'teamId' and 'name', so the baseline is 3. The description's parenthetical '(name)' adds no extra meaning beyond the schema's 'New team name' field description, so there is no additional value.

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

    Purpose4/5

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

    The description uses a clear verb ('Update') and resource ('team information'), and the parenthetical '(name)' specifies the exact field being updated. This distinguishes it from sibling tools like create_team, get_team, and delete_team, though it is somewhat terse.

    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_team or update_team_member_role. The description simply states what the tool does, leaving the agent to infer the appropriate context from the tool name and schema.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action and does not mention potential side effects, required permissions, or what the response contains. This is a significant gap for a mutation tool.

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

    Conciseness4/5

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

    The description is a single, front-loaded sentence with no unnecessary words. However, it is so brief that it omits useful contextual information, which prevents a perfect score for appropriate sizing.

    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 no output schema and no annotations, so the description must provide sufficient context for safe invocation. It fails to explain success/failure modes, required permissions, or return values. The schema covers parameters, but the overall description is incomplete for a mutation operation.

    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% for the two parameters ('name' and 'fileId'), so the schema already documents their meaning. The description adds no extra parameter context or constraints 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 'Add a new page to a file' uses a specific verb and resource, clearly indicating the tool's function. It distinguishes from sibling tools like 'list_pages' and 'create_file' by explicitly targeting page addition within a file.

    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, such as requiring an existing file ID, nor does it contrast with similar operations like 'create_frame' or 'create_text'.

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

  • Behavior1/5

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

    The description simply restates the tool's name ('Delete a webhook') without disclosing any behavioral traits. With no annotations, the agent learns nothing about permanence, required permissions, or cascading effects, making this a minimal disclosure.

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

    Conciseness5/5

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

    The description is a single concise sentence with no unnecessary words. It is appropriately sized for the tool's simplicity.

    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 delete tool, the description is minimally sufficient, but it lacks context about consequences (e.g., whether deletion is permanent) and prerequisites. Given the simple schema and no annotations, the description is adequate but not fully complete.

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

    Parameters3/5

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

    The schema already fully describes the sole parameter 'webhookId' ('Webhook ID to delete'), so the schema coverage is 100%. The tool description adds no further parameter detail, warranting the baseline score 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 'Delete a webhook' uses a specific verb and resource, clearly defining the tool's action. It differentiates from sibling tools such as create_webhook, update_webhook, and list_webhooks by indicating a delete 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. There are no prerequisites, exclusions, or references to other webhook-related tools, leaving the agent without context for appropriate selection.

    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?

    No annotations are provided, so the description carries the full burden. 'Get' implies a read-only operation, but the description does not disclose what details are returned, whether permissions are required, or any other behavioral context. It adds minimal value beyond the verb.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence that directly states the action and target. Every word earns its place, with no superfluous content.

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

    Completeness3/5

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

    For a simple two-parameter get operation with no output schema, the description is adequate but not complete. It omits what the returned details contain and whether any special context (e.g., authentication, permissions) is needed, but the simplicity of the operation reduces the 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 description coverage is 100% (File ID, Thread ID), so the schema already explains the parameters. The description does not add extra meaning or clarify their relationship to the thread, but the baseline for full schema coverage is 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 'Get details of a specific comment thread' clearly identifies the verb (get) and resource (specific comment thread). It distinguishes from list_comment_threads by implying a single thread, but does not explicitly differentiate from get_comments or detail what 'details' includes.

    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 list_comment_threads or get_comments. The word 'specific' implies a single thread, but there is no explicit when-to-use or exclusion criteria.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action without revealing whether the operation is read-only, requires specific permissions, or has any limitations (e.g., only direct references vs. transitive usage). This lack of context is a notable gap for a tool without 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 exceptionally concise: one sentence of eight words that immediately conveys the core purpose. It is front-loaded and contains no filler, earning every word.

    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 one parameter, the description provides a basic understanding of the return value ('all file references'), but there is no output schema and no elaboration on pagination, response format, or edge cases. It is minimally adequate but leaves gaps due to the absence of output schema and 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?

    The schema already provides 100% coverage for the single parameter 'libraryId' with a clear description. The tool description adds no additional parameter semantics, so the baseline of 3 applies, as the schema does the heavy lifting.

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

    Purpose4/5

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

    The description clearly states the tool's function: 'Get all file references that use this library' with a specific verb and resource. However, it does not differentiate from sibling tools like get_library_usage, which could also be used to retrieve library usage information.

    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 sibling list includes get_library_usage and get_file_libraries, which may be similar, but the description offers no comparison or exclusion criteria, leaving the agent to guess when this tool is the right choice.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a safe read operation but does not explain essential details such as whether the result is sorted, paginated, or limited to directly shared files. This is a significant transparency gap for a tool with no structured 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 a single, clear sentence with no fluff or redundancy. It is appropriately sized for a simple tool and front-loads the essential 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?

    Given the tool's low complexity (one parameter, no output schema), the description is minimally adequate. However, it lacks any context about return format, pagination, or edge cases, and the presence of a sibling tool with similar scope (get_team_recent_files) introduces ambiguity that the description does not resolve.

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

    Parameters3/5

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

    Schema description coverage is 100%, and the single parameter teamId is documented with 'Team ID'. The description adds no further semantic meaning beyond the schema, so it relies on the baseline 3 score. No compensation is needed since coverage is high.

    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 'Get all files shared with a team' clearly identifies the operation (getting files) and the specific scope (shared with a team). It distinguishes from the broader list_files tool, though it doesn't explicitly contrast with the sibling get_team_recent_files.

    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 gives no guidance on when to use this tool versus alternatives like get_team_recent_files or list_files. It merely states what it does, leaving the agent to infer appropriate usage 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.

  • Behavior2/5

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

    The description does not disclose key behavioral details such as ownership transfer requirements, access loss, or the last-owner constraint, which is especially important since annotations are absent.

    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, but the parenthetical '(current user leaves the team)' is slightly redundant given the title; it 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?

    The tool is simple, but given no annotations and no output schema, the description should mention important context like the requirement to reassign ownership when leaving as the last owner. This is only present in the schema.

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

    Parameters3/5

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

    The input schema already covers both parameters with clear descriptions (teamId, reassignTo), and the description adds no additional meaning or examples 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 specifies the verb 'Leave' and resource 'team', and explicitly states 'current user leaves the team', which differentiates it from sibling tools like delete_team (delete the team) or delete_team_member (remove another member).

    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. There is no mention of scenarios like leaving as a regular member vs. last owner, or how it differs from team deletion.

    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?

    With no annotations provided, the description must fully disclose behavioral traits. It states that the font's name is updated, but gives no information about side effects, permissions, idempotency, error conditions, or impact on related resources. This is a sparse disclosure for a mutation tool.

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

    Conciseness4/5

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

    The description is a single, front-loaded sentence with no wasted words. It is efficient, though it sacrifices depth for brevity. It earns a 4 because it is appropriately compact for such a simple operation, but it could benefit from additional context.

    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 no annotations and no output schema, so the description must carry the full burden of contextual completeness. It explains the core action but omits any details about return values, errors, or operational prerequisites. For a mutation tool, this minimal description leaves the agent under-informed.

    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 provides descriptions for all three parameters (name, fontId, teamId), achieving 100% coverage. The description does not add additional semantic meaning beyond what the schema already contains, 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 'Update a font's name' uses a specific verb (update) and resource (font) with the exact attribute being modified (name). It clearly distinguishes itself from sibling tools like delete_font and create_font_variant, leaving no ambiguity about its function.

    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, edge cases, or exclusions. It merely states the action without contextualizing it within the broader workflow of font management.

    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?

    No annotations are provided, so the description carries the full burden. It only states the basic action and does not disclose behaviors such as whether mentions trigger notifications, what happens if the thread is closed, or whether shareId is required for certain contexts. Since it's a mutation tool, it should clarify side effects or prerequisites, but it doesn't.

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

    Conciseness5/5

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

    One concise sentence that uses a clear verb and object. No fluff, no repetition of what's in the schema. It is appropriately sized for a simple tool.

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

    Completeness2/5

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

    For a mutation tool with no annotations, no output schema, and 4 parameters, the description is thin. It doesn't indicate whether a thread must be open, how mentions are processed, or what the return value is. The high schema coverage helps, but behavioral context is missing, making it incomplete for an agent to use it safely.

    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 all four parameters have descriptions in the schema. The description does not add extra meaning beyond what the schema provides, but per the rubric, with high coverage, baseline is 3. It doesn't explain how mentions or shareId relate to the comment creation, but the schema descriptions are adequate.

    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 'Add a comment to an existing thread' clearly states the action (add) and the resource (comment to an existing thread), distinguishing it from sibling tools like create_comment_thread and update_comment. However, it lacks explicit mention that it is a comment on a thread, not a thread itself, which is implied but could be clearer.

    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 context: it is for adding a comment to an existing thread, meaning a thread must already exist. It doesn't explicitly mention alternatives or when not to use it, but the context is clear enough from the phrasing. Sibling tools like create_comment_thread and list_comment_threads provide alternatives, but no explicit 'use this instead' guidance is given.

    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?

    No annotations provided; description only states the action, no side effects, permissions, return format, or behavior. Minimal for a write operation.

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

    Conciseness5/5

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

    Single sentence, front-loaded, zero waste.

    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 complete schema, the description lacks context for a creation tool with 8 parameters—no return info, no prerequisites, no clarification on thread/comment relationship.

    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, so baseline 3; description adds no param-specific 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?

    Clear verb+resource: 'Create a new comment thread on a page' – specific and distinguishes from 'create_comment' and 'list_comment_threads'.

    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 vs create_comment or update_comment_thread_position; no alternatives or exclusions.

    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?

    With no annotations, the description does not disclose side effects, whether the original shape is preserved or converted, permissions required, or return behavior. The phrase 'from a shape' hints at a source but lacks detail.

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

    Conciseness5/5

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

    The description is a single, direct sentence with no filler, making it easy to parse and front-loaded with the core action.

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

    Completeness2/5

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

    For a mutation tool without annotations or output schema, the description should explain the result and any changes to existing objects. It does not, leaving the agent uncertain about the outcome.

    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 already provides descriptions for all four parameters (100% coverage). The description does not add extra meaning beyond the schema; 'from a shape' simply echoes the shapeId description.

    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 (create) and the resource (a component derived from a shape). This distinguishes it from sibling tools like create_rectangle that create new shapes, and list_components that lists existing components.

    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 versus alternatives. It does not mention prerequisites (e.g., needing an existing shape) or exclude cases where other tools are more appropriate.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action, failing to mention that deletion is permanent, whether permissions are required, or what happens to associated data such as replies. This is a significant gap for an irreversible mutation.

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

    Conciseness5/5

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

    The description is a single short sentence with no unnecessary words. It is front-loaded and every word contributes to the meaning.

    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 the simple tool and complete parameter schema, the lack of annotations and output schema leaves the description without important context. It does not explain the destructive nature, potential side effects, or expected response, making it incomplete for reliable 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 provides descriptions for both parameters (shareId and commentId), achieving 100% coverage. The description adds no additional meaning beyond what the schema already contains, so the 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 'Delete a comment' uses a specific verb and resource, clearly distinguishing it from sibling tools like delete_comment_thread and update_comment. Even without a title, the purpose is unambiguous.

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

    Usage 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. There is no mention of prerequisites, conditions for use, or scenarios where this tool is preferred over other comment-related operations. The description simply restates the action.

    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?

    With no annotations, the description carries the full burden, but it merely rephrases the tool name. It does not disclose that deletion is permanent, whether it affects child shapes or page structure, permission requirements, or possible error conditions. The behavioral disclosure is minimal.

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

    Conciseness5/5

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

    The description is a single sentence with no wasted words, front-loading the key action and resource. It is appropriately sized for the tool's simplicity, earning a perfect score for 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?

    The description lacks essential context for a destructive operation. There is no annotation or output schema to supplement it, yet it does not mention success/failure responses, side effects (e.g., cascading deletion), or prerequisites. This is incomplete for an agent to use correctly, especially among many shape-related siblings.

    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 baseline is 3. The description adds no additional meaning beyond the schema's simple field labels ('File ID', 'Page ID', 'Shape ID'), but it is not required to compensate given the high 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?

    The description 'Delete a shape from the page' uses a specific verb ('Delete') and a clear resource ('shape'), distinguishing it from other delete_* tools like delete_file or delete_comment. It also clarifies the scope ('from the page'), making the purpose unmistakable.

    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 update_shape for modifications, nor does it mention preconditions (e.g., the shape must exist) or exclusions. It simply states the action without contextual advice.

    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?

    With no annotations, the description carries the full burden of behavioral disclosure. It only states the action 'delete' without mentioning irreversibility, required permissions, side effects, or what happens on success/failure. This is minimal 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 a single sentence that is front-loaded and contains no wasted words. It is appropriately concise for the tool's simplicity.

    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 the simple schema, this is a mutation tool with no annotations and no output schema. The description lacks essential context such as permanence of deletion, required permissions, or how the agent should interpret the outcome. It is below the minimum viable standard for a complete tool description.

    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 provides 100% coverage with the linkId parameter described as 'Share link ID'. The description adds no additional meaning beyond the schema, 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 'Delete a share link' uses a specific verb and resource, clearly identifying the action. It distinguishes this from the sibling tool 'create_share_link', 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 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, prerequisites, or alternatives. The sibling list includes related tools like create_share_link, but the description does not mention them or any conditions for deleting a share link.

    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?

    With no annotations provided, the description carries the full burden of disclosing behavior. It only implies a read operation through 'Get' but does not state whether authentication is required, what the response structure is, or whether any side effects occur. This leaves significant ambiguity for an agent.

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

    Conciseness5/5

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

    The description is a single, concise sentence with no redundant words. It is front-loaded with the action and resource. Every word contributes to meaning, achieving an ideal length for a simple getter.

    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's low complexity (no parameters, no annotations, no output schema), the description is minimally sufficient but leaves gaps. It does not explain what the 'current user profile' contains (e.g., fields like name, email, avatar) or any preconditions (e.g., must be authenticated). While the phrase 'current user profile' is fairly standard, the missing details about the return value could cause uncertainty.

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

    Parameters4/5

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

    The input schema has zero parameters, so schema coverage is effectively 100% and there is nothing to describe. The baseline for zero parameters is 4, and the description adds no parameter-specific meaning, which is acceptable in this case. The absence of parameters in the description aligns with 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 'Get current user profile' clearly identifies the verb (get) and resource (current user profile). It distinguishes itself from sibling tools like get_team or get_team_members, which target team-level data. The scope 'current user' adds specificity beyond a generic profile fetch.

    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 does it mention any prerequisites or exclusions. It does not contrast with get_team_members or other profile-related tools. The only implied usage is to retrieve the authenticated user's profile, but this is not explicitly stated.

    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?

    No annotations are provided, so the description carries the full burden. It only says 'Get list', implying a read, but does not disclose pagination, ordering, membership roles included, permission requirements, or response format. For a simple list tool, minimal behavior disclosure is still lacking.

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

    Conciseness5/5

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

    The description is a single concise sentence of eight words, clearly front-loaded with the verb and resource. No wasted words or redundancy.

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

    Completeness2/5

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

    With no annotations and no output schema, the description is extremely sparse. It does not clarify what 'members' means (users? roles?), whether the list is sorted, or what happens if the team doesn't exist. For a list operation, an agent would benefit from at least a note about response structure or edge cases.

    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 fully describes the single parameter 'teamId' with type and description. The description adds no additional meaning beyond connecting 'team' to teamId. Baseline 3 applies because schema coverage is 100% and no extra context is needed.

    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 action ('Get list') and resource ('all members in a team'), which is distinct from sibling tools like get_team or get_team_invitations. It specifies the scope ('all members') and is unambiguous.

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

    Usage Guidelines2/5

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

    There is no guidance on when to use this tool versus alternatives. With many team-related siblings (get_team, get_team_invitations, update_team_member_role), an agent is not told when this tool is appropriate or what it returns differently.

    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?

    With no annotations, the description must carry the full burden of behavioral disclosure. It only says 'List all components' and does not disclose return format, pagination, whether nested components are included, or any side effects (though listing implies read-only). This is minimal and lacks 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 a single concise sentence that is front-loaded and to the point. Every word earns its place, with no redundant information.

    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 is simple but lacks an output schema and annotations. The description does not explain what the response contains, how to interpret the list, or any limitations. For an agent to invoke it correctly, more detail about the return value and edge cases would be 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?

    Schema coverage is 100% with fileId described as 'File ID', and the description mentions 'in a file', aligning with the parameter. No additional meaning is added beyond the schema, so the 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 'List all components in a file' clearly states the verb (List), resource (components), and scope (in a file). It distinguishes this from sibling tools like list_files and list_pages by specifying components as the object 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?

    No guidance is provided on when to use this tool versus alternatives such as search_shapes or get_page_shapes. The description implies a straightforward use case but does not explicitly contrast with sibling tools or state prerequisites.

    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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'search by name' without revealing matching behavior (exact vs substring), case sensitivity, pagination, or return format, which are critical for a search operation.

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

    Conciseness5/5

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

    The description is a single, direct sentence with no unnecessary words. It is front-loaded with the action and resource, making it easy to parse and memorize.

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

    Completeness2/5

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

    With no annotations or output schema, the description is incomplete. It fails to specify search behavior, result structure, or any edge cases (e.g., empty results, overlapping with list_files). The schema provides parameter names but not the operational context needed to invoke the tool confidently.

    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 descriptions are 100% covered, providing baseline meaning. The description adds that the query is a file name, which clarifies the 'search query' parameter, but it does not elaborate on matching semantics or the role of projectId, offering only marginal value 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 a specific verb ('search') and resource ('files') with a scope ('by name'), distinguishing it from siblings like 'list_files' (which lists files) and 'search_shapes' (which searches shapes). This is precise and unambiguous.

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

    Usage 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 versus alternatives. It does not mention exclusive scenarios, alternatives, or prerequisites, leaving the agent without context for choosing this over 'list_files' or other search tools.

    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?

    No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states the tool creates a rectangle shape but does not mention side effects (e.g., modifying an existing file/page), required permissions, or what the response contains. The feature list is more about parameter capabilities than 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 a single, front-loaded sentence that clearly states the main action and then lists capabilities compactly. No unnecessary words or redundancy; it is efficient and easy to parse.

    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 39 parameters, two required parameters, and no output schema, the description is minimal but not insufficient. It identifies the tool's broad purpose and capabilities, but it doesn't mention the required file/page context, what the tool returns, or how to combine options. The schema fills most invocation details, but the description leaves some contextual 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 description coverage is 100%, so the baseline is 3. The description summarizes groups of parameters (colors, gradients, images, etc.) but adds no new meaning beyond what the schema already provides for each property. It serves as a high-level overview rather than adding semantic detail.

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

    Purpose5/5

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

    The description uses a specific verb+resource ('Create a rectangle shape') and enumerates the styling capabilities, clearly distinguishing it from sibling tools like create_circle and create_text. It accurately conveys the tool's function and 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 explicit guidance is provided on when to use this tool versus alternatives such as create_frame or create_circle. The description does not mention prerequisites, exclusions, or scenarios where a different creation tool would be more appropriate.

    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?

    With no annotations provided, the description must carry the transparency burden. It only states the basic creation action without disclosing side effects like whether emails are sent, invitation expiration, duplicate handling, or permission requirements. This leaves room for potentially surprising 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 a single, clear sentence with no redundant words. It front-loads the action and target, making it easy to parse. Nothing extraneous is included.

    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 creation tool, the description covers the core functionality but lacks important context. There is no output schema, so the description could mention return values or success behavior, but it does not. It also omits constraints like whether invitations require sending email or have limits. This is minimally complete but has 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 coverage is 100% with descriptions for all three parameters, so the baseline is 3. The description's 'one or more email addresses' reinforces the emails parameter but adds no new meaning beyond the schema. Role and teamId are not elaborated in the description.

    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: creating invitations for one or more email addresses to join a team. It uses a specific verb ('create') and identifies the resource ('team invitations') plus the target (email addresses). This distinguishes it from sibling tools like get_team_invitations or delete_team_invitation.

    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 adding members directly or updating existing invitations. Sibling tools suggest a broader team management workflow, but the description does not mention any exclusions, prerequisites, or conditions for use.

    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?

    No annotations are provided, and the description does not disclose whether deletion is permanent, reversible, or requires special permissions. It only states the action without 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 a single, succinct sentence that is front-loaded and contains no redundant or filler 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?

    For a simple one-parameter delete operation, the description is minimally adequate but lacks important behavioral details such as permanence and impact on the file's version history, which is especially relevant given sibling snapshot tools.

    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 snapshotId described as 'Snapshot ID to delete', so the baseline is 3. The description adds no additional parameter information 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?

    Description clearly identifies the action 'Delete' and the resource 'file snapshot (version)', and it distinguishes from sibling snapshot operations like restore, lock, and unlock.

    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 restore_file_snapshot, lock_file_snapshot, or unlock_file_snapshot. It does not state conditions, prerequisites, 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.

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden for behavioral disclosure. It only mentions the action and the 'pending' state, but does not reveal what happens if the invitation is not found, whether it is idempotent, or what permissions are required. The mutation is implied by 'delete' but lacks deeper transparency.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no unnecessary words. It efficiently captures the essential action and target, earning a perfect score for 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 simplicity of the tool (2 params, no nested objects, no output schema), the description is minimally adequate. However, the absence of any return-value specification and limited behavioral context makes it less than fully complete. It covers the basics but leaves questions about errors and response format unanswered.

    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 describes both parameters with 100% coverage. The description adds no additional meaning beyond 'by email', which reinforces the email as the key identifier but does not introduce new semantic details. With high schema coverage, the 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 action (delete), the resource (pending team invitation), and the identifier (by email). This is a specific verb+resource combination that distinguishes it from sibling tools like get_team_invitations, create_team_invitations, and update_team_invitation_role.

    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. There is no mention of prerequisites, exclusions, or scenarios where a different tool (e.g., delete_team_member) would be more appropriate. The description simply states what it does without context.

    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?

    No annotations are provided, so the description must carry the full burden. While it implies distribution repositions shapes, it does not disclose that the operation modifies shape positions, whether it is destructive, or what 'evenly' means in terms of bounds. The behavior is under-specified.

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

    Conciseness5/5

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

    The description is a single, concise sentence that conveys the core purpose without any wasted words. It is appropriately sized for the tool's simplicity.

    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 mutation tool with no output schema, the description covers basic functionality. However, given the absence of annotations, it could be more complete by explaining that shapes are repositioned, how direction is applied, or any side effects. It is adequate but leaves room for interpretation.

    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 each parameter has a basic description (e.g., 'Array of shape IDs to distribute (at least 3 shapes)'). The tool description adds no additional semantic nuance beyond the schema, meeting the baseline but not exceeding it.

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

    Purpose5/5

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

    The description uses the specific verb 'distribute' with the resource 'shapes' and clarifies the intent 'evenly with equal spacing'. This clearly distinguishes it from sibling tools like align_shapes, which perform a different 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?

    The description provides no guidance on when to use this tool versus alternatives such as align_shapes. It does not mention scenarios, prerequisites, or exclusions, leaving the agent without clear decision support.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only restates the core function without mentioning side effects, permissions, pagination, return format, or any constraints. It adds no value beyond what the tool name and schema 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.

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the essential purpose without redundancy.

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

    Completeness3/5

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

    The tool is simple (one parameter, no output schema, no annotations), but the description is minimal. It lacks details about what 'component libraries' includes, the return structure, and how it relates to sibling tools like has_file_libraries or get_library_usage. Some operational context is missing for an agent to fully rely on it.

    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 the single parameter (fileId) with a clear description, so the baseline is 3. The tool description adds no additional parameter-level semantics such as format, constraints, or examples.

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

    Purpose5/5

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

    The description uses a specific verb ('Get') and resource ('all component libraries used by a file'), clearly distinguishing it from siblings like has_file_libraries, get_library_usage, and get_library_file_references. It unambiguously states what the tool does.

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

    Usage 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 exclusions, and no context about which sibling tools cover related scenarios. The agent is left to infer usage from the name and one-liner alone.

    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?

    No annotations are provided, so the description carries the full burden of disclosure. It states the read intent via 'Get' but does not define what 'recently' means, whether results are sorted, paginated, or limited, or what file metadata is returned.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no filler. It efficiently captures the core purpose and is appropriately sized for a one-parameter read tool.

    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 is simple, but with no output schema and no annotations, the description leaves gaps around return format, recency window, and ordering. It is adequate at a high level but lacks details that an agent may need to set expectations 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?

    Schema description coverage is 100% for the single teamId parameter, and the description reinforces that the scope is team-based. However, it adds little beyond the schema's 'Team ID' label, 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 uses a specific verb ('Get') with a specific resource ('recently modified files in a team'), which distinguishes it from siblings like list_files and get_file by focusing on recency and team 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 given on when to use this tool versus alternatives such as list_files, search_files, or get_team_shared_files. The intended use is only implied by the name and description, with no exclusions or alternative recommendations.

    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?

    No annotations are provided, so the description must disclose behavior. It only states the tool gets statistics and lists three types of counts, but does not describe output format, whether it's read-only, or any edge cases. The description is minimal and fails to provide comprehensive 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 a single, front-loaded sentence with no redundant words. The parenthetical clarifies the scope efficiently.

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

    Completeness3/5

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

    With no output schema or annotations, the description gives a rough idea of return content but lacks precision on what the statistics look like. For a simple tool, the description covers the core purpose but leaves some ambiguity about the exact response structure.

    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 teamId as 'Team ID' with 100% coverage. The description adds no additional parameter semantics, leaving 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 the tool returns team statistics, specifically projects, files, and member counts. This distinguishes it from sibling tools like list_projects or get_team_members which return detailed lists, though it doesn't 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 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 versus alternatives. The description implies usage when aggregate counts are needed, but does not mention when not to use or which sibling tools to prefer for detailed data.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read operation ('List') but does not disclose potential behaviors such as pagination, sorting, permission requirements, rate limits, or what exactly is returned (metadata vs. content). The phrase 'all snapshots' adds some scope clarity but not behavioral detail.

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

    Conciseness5/5

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

    The description is a single, concise sentence that directly states the tool's purpose. It is appropriately sized, front-loaded with the verb, and contains no extraneous 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?

    The tool is simple with one parameter and no output schema, and the description adequately covers the primary purpose. However, it lacks behavioral context and usage guidance, which would help an agent confidently invoke it. The sibling tools provide some context about snapshots, but the description itself is minimal.

    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 provides a description for fileId ('File ID to get snapshots for'), achieving 100% schema coverage. The tool description adds no additional meaning about parameters beyond the schema, 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 tool lists all snapshots (versions) of a file, using the specific verb 'list' and identifying the resource as 'snapshots of a file'. It distinguishes itself from sibling snapshot tools like create_file_snapshot, delete_file_snapshot, and restore_file_snapshot by focusing on the read 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?

    There is no guidance on when to use this tool versus alternatives. It does not mention that this is the appropriate tool for viewing version history, nor does it exclude scenarios better served by other tools like restore_file_snapshot or get_file. The description only states the function, leaving usage context entirely implied.

    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?

    No annotations are provided, so the description carries the full burden. It only states the core action without disclosing side effects (e.g., notifications, permissions), prerequisites (e.g., thread must exist), or the response format. It adds no behavioral detail beyond the obvious.

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

    Conciseness5/5

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

    The description is a single concise sentence that front-loads the verb and resource, with no unnecessary words. It is appropriately sized for the tool's simplicity.

    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 is simple (2 params, no output schema), and the description covers the core purpose. However, it omits return values, prerequisites, and error conditions, leaving some context gaps despite the straightforward action.

    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 with clear descriptions ('Thread ID' and 'Whether thread is resolved'), and schema coverage is 100%. The description adds no additional semantic nuance beyond what the schema already provides, so the 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 'Mark a comment thread as resolved or unresolved' clearly identifies the action (mark) and resource (comment thread), and specifies the two possible states. This distinguishes it from sibling tools like update_comment_thread_position or update_comment.

    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 list_comment_threads or other comment thread mutations. It simply states the function without any context, exclusions, or alternatives.

    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?

    With no annotations provided, the description must disclose behavioral traits. It only states that it updates a snapshot's label/description but does not mention side effects, whether the snapshot must be unlocked, whether the old label is overwritten, or what the response looks like. This is a minimal disclosure beyond the 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 a single, concise sentence that directly front-loads the action and target. There is no filler or redundancy, and it efficiently communicates the core purpose for a tool with only two parameters.

    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 two-parameter update operation with complete schema coverage, the description provides the essential purpose. However, it lacks contextual details such as what a snapshot is, potential interactions with snapshot locking, or the effect of updating the label. This is adequate but not richly 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 schema already provides 100% coverage with clear parameter descriptions: snapshotId is 'Snapshot ID to update' and label is 'New label/description for the snapshot'. The tool description merely echoes 'label/description' without adding any extra meaning beyond what the schema already states.

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

    Purpose5/5

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

    The description uses a specific verb 'update' and resource 'snapshot' with a specific target 'label/description'. This clearly distinguishes it from sibling snapshot operations like restore, lock, unlock, delete, and create, which focus on different actions.

    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 any conditions, prerequisites, or related tools such as restore or lock, leaving the agent to infer usage solely from the tool name and schema.

    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?

    With no annotations provided, the description carries the full burden of disclosure. It only says 'Update' implying mutation, but does not disclose permissions required, reversibility, consequences to the member's access, or whether it is idempotent. This leaves the agent without awareness of 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 a single, clear sentence with no filler or redundant information. It efficiently conveys the purpose and the allowed role values, earning its place.

    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 is simple with all parameters documented, but the description omits any mention of return values or behavioral caveats (e.g., permission requirements). Since there is no output schema, this is a minor gap. The description is adequate but not fully complete.

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

    Parameters3/5

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

    The input schema fully describes all three parameters (teamId, memberId, role) with 100% coverage. The description adds no additional semantic detail beyond restating the role enum values, which are already present in the schema. Baseline 3 is appropriate since the schema does the heavy lifting.

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

    Purpose5/5

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

    The description 'Update a team member's role (viewer, editor, admin, owner)' clearly states the specific action and resource, with the role options enumerated. It distinguishes from sibling tools like update_team_invitation_role by targeting team members rather than invitations.

    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, nor does it state any exclusions or prerequisites. It simply states the operation without context such as 'use this to change an existing member's role' versus inviting new members.

    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?

    No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states what can be updated, without explaining side effects (e.g., full overwrite vs partial update), authorization requirements, or whether the updated webhook is returned. This is a significant gap for a mutation tool.

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

    Conciseness5/5

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

    The description is a single, concise sentence that is front-loaded with the action and resource. Every word contributes to conveying the purpose, with no wasted or redundant content.

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

    Completeness3/5

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

    The tool is relatively simple, with fully documented parameters and no output schema. The description covers the core purpose, but lacks usage guidance and behavioral transparency (e.g., whether the update is partial or full, any error conditions). It is minimum viable but leaves important context for the agent to infer.

    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 provides 100% coverage with descriptions for all four parameters. The description adds a high-level grouping ('URL, type, or active status') but no additional detail beyond what the schema already states, so it does not significantly enhance parameter understanding.

    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 'update' and resource 'existing webhook', and specifies the updatable fields (URL, type, or active status). It is specific enough to distinguish from create/list/delete webhook siblings, though it does not explicitly mention these alternatives.

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

    Usage Guidelines3/5

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

    The word 'existing' implies that the tool targets already-created webhooks, providing some contextual signal. However, there is no explicit guidance on when to use this tool versus create_webhook or delete_webhook, and no mention of prerequisites or exclusions.

    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?

    No annotations are provided, so the description carries the full burden. It only discloses the action 'create' and does not mention side effects (e.g., adding a shape to the specified page), required permissions, or return behavior. It also fails to note that fileId and pageId are required to place the circle, which is important operational context.

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

    Conciseness5/5

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

    The description is a single, concise sentence that front-loads the core purpose ('Create a circle shape') before listing the styling options. Every word earns its place, and it avoids any fluff or 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?

    The tool has 33 parameters and no output schema, but the description provides only a broad feature list. It does not mention that the circle is created on a specific page (implied by required fileId/pageId), does not describe the return value, and does not explain conditional parameter usage (e.g., choosing gradientStops over a solid fillColor). The schema is comprehensive, but the description lacks the operational context an agent needs to correctly invoke 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?

    Schema description coverage is 100%, so the baseline is 3. The description adds a high-level categorization of parameters (colors, gradients, images, etc.) but does not add syntax, formatting details, or relationships between parameters beyond what the schema already provides (e.g., how fillImageId and fillImageName interact).

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

    Purpose5/5

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

    The description clearly states the specific verb 'Create' and the resource 'circle shape', and lists the styling capabilities (colors, gradients, images, borders, shadows, blur, blend modes). This unambiguously distinguishes it from sibling creation tools like create_rectangle, create_text, and create_frame.

    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 the tool is for creating circle shapes, but it does not explicitly state when to use this tool over alternatives such as create_rectangle, nor does it mention any prerequisites or scenarios where this tool is preferred. The context is clear but lacks explicit exclusions or alternative guidance.

    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?

    There are no annotations, so the description carries the full burden. It lists capabilities (colors, gradients, images, etc.) and mentions the container aspect, but does not disclose behaviors such as parameter precedence, validation rules, side effects, or return values. For a create operation, this is a significant gap.

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

    Conciseness5/5

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

    The description is a single sentence that front-loads the core purpose and lists key capabilities without fluff. It is appropriately sized for a tool with many parameters, though the long feature list is slightly dense.

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

    Completeness2/5

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

    Given the tool's complexity (39 parameters, no output schema), the description is far too brief. It does not provide usage context, return behavior, parameter priorities, or prerequisites beyond what the schema already states. A short feature list is insufficient for such a complex 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%, so the baseline is 3. The description adds a high-level summary of feature categories but does not explain parameter interactions (e.g., how fillColor relates to gradientStops, or required fileId/pageId). It does not meaningfully exceed the schema's own descriptions.

    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: 'Create a frame shape (container for other shapes)' with a specific verb and resource. It distinguishes itself from sibling tools like create_rectangle, create_circle, and create_text by emphasizing the frame's role as a container and its rich styling capabilities.

    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 this tool (when creating a frame/container or applying complex visual effects) but does not explicitly state alternatives or exclusions. It mentions 'container for other shapes' as a use case but lacks direct guidance on choosing between create_frame and other creation tools.

    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?

    No annotations exist, so the description carries the full burden of behavioral disclosure. It only lists visual capabilities and does not mention the mutation side effect (adding a shape to a page), required permissions, or return behavior. For a creation tool, this leaves significant ambiguity.

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

    Conciseness5/5

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

    The description is a single sentence, immediately front-loaded with the action and resource, with zero wasted words. It is appropriately concise given the detailed schema that follows.

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

    Completeness2/5

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

    For a tool with 27 parameters, no annotations, and no output schema, the description is too sparse. It does not mention the required fileId/pageId, the fact that this creates a new shape in a page, or any expected result/return value, leaving gaps in contextual understanding.

    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%, with each parameter already documented. The description adds a high-level categorization (color, styling, alignment, shadows, blur, blend modes) but no additional parameter-specific 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 'Create a text shape' uses a specific verb and resource, clearly distinguishing it from sibling tools like create_rectangle, create_circle, and create_frame. It also highlights key capabilities (color, styling, alignment, shadows, blur, blend modes) that define the tool's 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?

    The description implies usage for creating text shapes but does not explicitly compare with alternatives. No 'when to use' or 'when not to use' guidance is provided, though the tool name and sibling context make the primary use case clear.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Delete' which implies a destructive action, but it does not mention irreversibility, permission requirements, side effects, or what happens if the variant is in use. This is a significant gap for a destructive operation.

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

    Conciseness5/5

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

    The description is a single, well-structured sentence that immediately identifies the action and object. It is concise, front-loaded, and contains no redundant or filler information.

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

    Completeness2/5

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

    Although the tool is simple, the lack of annotations and output schema means the description should compensate by providing usage context and behavioral caveats. It omits any mention of prerequisites, errors, or outcomes, and the sibling list includes similar delete/update font tools, making the description insufficient for confident tool selection and 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 already documents both parameters (teamId and variantId) with 100% coverage, including 'Font variant ID to delete' for variantId. The description adds no additional meaning beyond what the schema provides, so the 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 uses a specific verb 'Delete' and a specific resource 'specific font variant' with illustrative examples (Bold, Italic). It distinguishes the tool from siblings like delete_font and update_font by clearly scoping the operation to a variant.

    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 the tool but provides no explicit guidance on when not to use it or which alternative to choose. Sibling tools like delete_font and update_font could be confused with this operation, and the description does not address this potential ambiguity.

    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?

    No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only mentions owner permissions, but omits the destructive, likely irreversible nature of deleting a team, and potential cascading effects on team members, projects, or shared files.

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

    Conciseness5/5

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

    The description is a single, clear sentence. It is front-loaded with the action and includes only essential information, making it highly 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?

    Given that this is a destructive operation with no output schema, the description should provide more context about consequences (e.g., irreversibility, associated data deletion). It only covers permissions, leaving significant gaps for an agent deciding to invoke it.

    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 already fully describes the single parameter teamId as 'Team ID'. The description adds no additional semantic meaning beyond the schema, so it meets the baseline for high 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?

    The description uses the imperative 'Delete a team' which clearly identifies the action and resource. The parenthetical 'requires owner permissions' adds a necessary precondition, distinguishing it from read-only team tools like get_team or list_teams.

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

    Usage Guidelines3/5

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

    It states the permission requirement, implying usage is for owners only, but does not explicitly reference alternatives such as delete_team_member or leave_team for users who are not owners. No clear when-to-use versus when-not-to-use guidance beyond permission.

    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?

    No annotations are provided, so the description carries the burden of behavioral disclosure. It is minimal and only states the action, without detailing return format, pagination, or any side effects. This is insufficient for a tool with no other contextual metadata.

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

    Conciseness5/5

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

    The description is a single, focused sentence with no superfluous words. It is appropriately concise and front-loaded.

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

    Completeness2/5

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

    Given the absence of annotations and output schema, the description should provide more context about expected returns or limitations. It only states the core action, leaving significant gaps for an agent to know what to expect.

    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% for the single parameter fileId. The description adds context by indicating fileId identifies the file whose pages are listed, but does not provide additional syntax 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 'List all pages in a file' clearly states a specific action (list) on a resource (pages) within a scope (file). It distinguishes from sibling tools like list_files and add_page.

    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 the tool (when you need pages from a file) but does not provide explicit alternatives or exclusions. No comparison to related tools like get_page_shapes or add_page is given.

    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?

    With no annotations provided, the description must disclose behavioral traits itself. It only states 'by name', which is minimal. It does not explain search matching behavior (exact vs. partial), case sensitivity, pagination, error handling, or what happens when no shapes match, leaving significant gaps.

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

    Conciseness5/5

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

    The description is a single, concise, front-loaded sentence with no redundant information. Every word contributes to understanding the tool's core function, achieving an ideal level of 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 absence of an output schema and annotations, the description is underspecified. It does not mention return values, pagination, or search behavior nuances. For a simple two-parameter tool, the description still leaves important operational details unstated, making it minimally acceptable.

    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?

    Although the schema has 100% coverage, the parameter descriptions are generic ('Search query', 'File ID'). The tool description adds meaning by specifying that the query is used to search by name, clarifying the purpose of the query parameter beyond the schema alone.

    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 a specific action ('Search') on a specific resource ('shapes') with a defined scope ('in a file') and criterion ('by name'). This distinguishes it from sibling tools like query_shapes or get_page_shapes, which likely have broader or different behavior.

    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 such as query_shapes or get_page_shapes. It lacks explicit exclusions or context about which tool is best for different search scenarios, leaving the agent to infer.

    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?

    With no annotations, the description carries the full burden of behavioral disclosure but only says 'Update shape properties,' which vaguely implies mutation. It doesn't state whether unspecified properties are left unchanged or reset, whether some properties only apply to text shapes, or what the response contains. This is a significant gap for an update tool.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with a clear verb and object, and the property list is relatively concise considering the large schema. There is no redundant or filler content.

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

    Completeness2/5

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

    For a tool with 49 parameters and no annotations or output schema, the description should clarify update semantics (e.g., partial update), shape-type applicability of certain properties, and required identifiers, but it doesn't. This leaves substantial ambiguity for the 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?

    All 49 properties already have schema descriptions, so the baseline is 3. The description's property list merely summarizes what the schema already details, adding no extra meaning about parameter interactions, constraints, or partial-update behavior.

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

    Purpose5/5

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

    The description uses the specific verb 'Update' and identifies the resource ('shape properties') with a comprehensive list of property categories, making it clear this modifies existing shapes. It distinguishes itself from creation tools like create_rectangle and read tools like get_shape_properties.

    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 the tool is for modifying existing shape properties but provides no explicit guidance on when to prefer it over related tools like align_shapes or distribute_shapes, nor any exclusions. The verb 'Update' gives a clear basic context, but no alternatives or when-not-to-use scenarios 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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the create action and the weight range, but does not reveal side effects, required permissions, return value, or validation behavior. This is a significant gap for a mutation tool without any structural safety signals.

    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 short sentences. The first sentence states the core purpose, and the second clarifies weights. However, the weight information duplicates the schema's enum, so it is slightly redundant but not wasteful. Overall, it is well-structured and front-loaded.

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

    Completeness3/5

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

    Given the tool has 6 required parameters, a nested data object, and no output schema, the description provides minimal context. It mentions requiring font data but does not explain the structure of the data object, the relationship between fontId and fontFamily, or what the API returns. It is adequate but leaves gaps for an agent to correctly invoke the tool without additional inference.

    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 descriptions cover all parameters (100% coverage), so the baseline is 3. The description's added statement 'Font weights: 100-900 in increments of 100' is actually inconsistent with the schema's enum, which includes 950. This contradicts the schema and provides no beneficial meaning beyond what the enum already offers, so the score is lowered to 2.

    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 'Create a new font variant' uses a specific verb and resource, clearly distinguishing it from sibling tools like list_font_variants, update_font, delete_font, and delete_font_variant. It also adds a prerequisite ('requires font data'), making the purpose unambiguous.

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

    Usage Guidelines4/5

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

    The description gives clear context by stating the prerequisite 'requires font data' and the accepted weight range. It implicitly tells the agent that to create a variant you need an existing font file. However, it does not explicitly exclude alternatives or state when not to use it, so it falls short of a 5.

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

  • Behavior2/5

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

    No annotations are provided, and the description only states the creation action without disclosing behavioral traits such as side effects, permissions, delivery behavior, or error handling. The phrase 'for team event notifications' offers minimal context but not meaningful behavioral transparency.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no unnecessary words. It is concise and to the point, making it easy to scan.

    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 create operation, the basic purpose is covered, but the description lacks behavioral details, return value expectations, or prerequisites. Given the absence of annotations and output schema, it is only minimally 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 clear descriptions and an enum for mtype. The tool description adds no additional parameter semantics beyond the schema, aligning with the baseline score 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 uses a specific verb ('Create') with a clear resource ('webhook') and context ('for team event notifications'), which distinguishes it from sibling tools like update_webhook, delete_webhook, and list_webhooks.

    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 a new webhook but does not explicitly mention alternatives or when not to use it. Sibling webhook management tools exist, but no comparison is provided.

    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?

    With no annotations, the description carries the full burden for behavioral disclosure. It only states that the tool returns all comments in a thread, which essentially restates the purpose. It does not mention ordering, pagination, error handling, permissions, or whether the operation is read-only beyond the 'Get' verb.

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

    Conciseness5/5

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

    The description is a single, grammatically complete sentence that is direct and front-loaded. No words are wasted, and it effectively communicates the core function.

    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 one parameter and no output schema, the description is minimally adequate. However, it omits any information about the return shape (e.g., an array of comment objects), potential errors, or how this differs from fetching thread metadata, which would be valuable given the rich set of sibling comment-related tools.

    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% for the single parameter threadId, which is already described as 'Thread ID'. The tool description adds no additional semantic meaning or usage details beyond what the schema provides, so the 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 'Get all comments in a thread' uses a specific verb 'Get' and identifies both the resource ('comments') and the scope ('in a thread'). It clearly distinguishes from sibling tools like get_comment_thread and list_comment_threads by indicating a collection operation on comments within a single thread.

    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 the use case (retrieve all comments for a given thread) but provides no explicit guidance on when to use this tool versus alternatives such as get_comment_thread or list_comment_threads. There is no mention of when not to use it or of any prerequisites.

    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?

    No annotations are provided, so the description carries the full burden. It only states the basic action without disclosing behavior like pagination, return format, permissions, or potential side effects. 'List' implies a read operation, but the lack of detail leaves significant ambiguity for a tool with no annotation support.

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

    Conciseness5/5

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

    The description is a single, clear sentence with no filler or redundant information. It is perfectly concise and front-loaded with the core 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?

    For a simple one-parameter list tool, the description is adequate but leaves gaps. It does not mention what is returned (e.g., file metadata, names) and lacks guidance on pagination or other response details, especially given the absence of an output schema and 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 description coverage is 100% since projectId is described as 'Project ID'. The description's phrase 'in a project' aligns with the schema but adds no new detail about format, constraints, or behavior beyond what is already in 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 'List all files in a project' uses a specific verb (List) and resource (files) with a clear scope (in a project). It differentiates from sibling tools like get_file (single file) and search_files (filtered search), making the tool's function unmistakable.

    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 enumerating all files in a project but does not explicitly state when to use it over alternatives such as get_file or search_files. There is no mention of exclusions or when not to use it, leaving the guidance implicit rather than explicit.

    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?

    No annotations are provided, so the description carries the full burden. It only states the basic function and lacks disclosure of behavioral traits such as return format, pagination, filtering, or whether archived/hidden projects are included. This is a significant gap for a tool with no annotation support.

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

    Conciseness5/5

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

    The description is a single, concise sentence with no filler. It is front-loaded with the essential information and every word is meaningful.

    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 list operation with one parameter, the description covers the core action. However, with no output schema, it does not explain what is returned (e.g., project names, IDs, nested fields). It is minimally viable but lacks return-value context, which is a notable 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% since teamId has a description ('Team ID'). The tool description adds the context that projects are scoped to the team, but this is already implied. No extra detail like format or examples is given, so the 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 verb 'list' and the resource 'projects', scoped to a team. It distinguishes from siblings like list_teams (lists teams) and create_project (creates a project). The purpose is unambiguous.

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

    Usage Guidelines3/5

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

    The description implies usage: use when you need to list all projects for a given team. However, it does not explicitly mention alternatives or exclusions (e.g., when to use search_files vs this). The context is simple enough that implied usage suffices.

    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?

    With no annotations, the description carries the transparency burden. It correctly indicates a read-only operation (getting a count) with no side effects mentioned. However, it lacks details such as whether the count includes linked files, trashed items, or requires specific permissions. The description is not misleading, but it is thin on behavioral nuances.

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

    Conciseness5/5

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

    The description is a single, clear sentence with no redundancy. It is front-loaded and entirely to the point, embodying conciseness.

    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 such a simple tool (one parameter, no output schema), the description is nearly complete. It states what the tool does and implies the return value (the count). It doesn't elaborate on edge cases or response format, but given the simplicity, this is acceptable. It slightly misses on explaining what 'uses' means, but overall 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?

    The input schema already describes the single parameter (libraryId) as 'Library (file) ID to check usage for', which has 100% coverage. The description adds minimal semantic value beyond that, only clarifying that the result is the number of files. Per the rubric, with high schema coverage, a baseline 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 identifies the action ('Get') and the target/resource ('the number of files that use this library'). It is concise and understandable, though it does not explicitly differentiate from the sibling tool get_library_file_references, which could also relate to usage. Still, the focus on 'number of files' sets it apart.

    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 this tool: when you need a count of files using a particular library. However, it does not provide explicit usage guidance, such as when not to use it or which alternative to consider (e.g., get_library_file_references for detailed references). The context is inferable but not stated.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden for disclosing behavior. It does mention the return type (boolean), but it does not explicitly state that this is a read-only check with no side effects. The verb 'check' implies non-mutating behavior, but it could be more explicit. This is adequate but not rich.

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

    Conciseness5/5

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

    The description is a single, concise sentence that directly states the tool's purpose and return type. It is front-loaded and contains no unnecessary words or filler.

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

    Completeness4/5

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

    For a simple boolean check tool with a single parameter and no output schema, the description is nearly complete. It explains what the tool checks, the return type, and the parameter is self-explanatory. A minor gap is that it doesn't reference related library tools, but this is not critical for such a simple operation.

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

    Parameters3/5

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

    Schema description coverage is 100% and the single parameter `fileId` is already described as 'File ID to check'. The tool description adds no additional meaning 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 tool checks if a file uses component libraries and returns a boolean. This is a specific verb+resource+return type, and it distinguishes itself from the similar sibling `get_file_libraries` by returning a boolean rather than a list.

    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 like `get_file_libraries`. No context or exclusion criteria is offered, so an agent gets no help choosing between related tools.

    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?

    With no annotations provided, the description must carry the full burden of behavioral disclosure. 'List' implies a read-only operation, but the description does not mention whether pagination or sorting applies, whether deleted or hidden media objects are included, or what the return structure looks like. This is a significant gap for a tool with zero 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 a single, straightforward sentence with no filler. It is appropriately front-loaded and every word 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 the tool's low complexity (one parameter, no nested objects, no output schema), the description is adequately complete for a basic list operation. It states the essential purpose, and while it does not detail return values or edge cases, the simplicity of the operation makes this acceptable.

    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 for fileId has 100% coverage with a simple 'File ID' description, so the schema already documents the parameter fully. The tool description adds nothing beyond the schema, which aligns with the baseline 3 for high 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?

    The description 'List all media objects in a file' uses a specific verb ('list'), identifies the resource ('media objects'), and scopes it to a file. This clearly distinguishes it from siblings like list_files and list_pages, which target different resource types.

    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 purpose is so explicit that the usage context is implied: call this when you need to retrieve media objects within a specific file. However, it provides no explicit guidance on when to choose it over alternatives, nor does it mention any exclusions or prerequisites.

    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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool updates a role but does not describe potential side effects (e.g., whether the invitation is re-sent), error conditions (e.g., if the invitation is already accepted), or the return value. For a mutation tool, this lack of context is a significant gap.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence that wastes no words. It directly conveys the tool's purpose without redundancy.

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

    Completeness2/5

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

    Although the schema fully covers parameters, the description lacks essential behavioral context for a mutation tool: there is no output schema, no mention of return values, error handling, or prerequisites. The 'pending invitation' scope is helpful but insufficient for an agent to understand the tool's full 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?

    The input schema already provides complete descriptions for all three parameters (teamId, email, role) with 100% coverage, including an enum for role. The description adds the 'pending' context, but this is not per-parameter detail. Thus, the 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 action (update), the resource (role of a pending team invitation), and the identifier (by email). It distinguishes this tool from update_team_member_role by specifying 'pending team invitation' rather than a team member.

    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 phrase 'pending team invitation' provides clear context that this tool is for invitations that have not yet been accepted, differentiating it from update_team_member_role which targets existing team members. However, it does not explicitly mention when not to use it or alternative tools for other scenarios.

    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?

    With no annotations provided, the description carries the full burden. It discloses the behavioral trait of returning only 'pending' invitations, which is useful context beyond the tool name. However, it does not mention pagination, ordering, auth requirements, or response structure, though for a simple read-only list this is somewhat expected.

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

    Conciseness5/5

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

    The description is a single, concise sentence of nine words. It is front-loaded with the action and resource, and every word contributes value without redundancy.

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

    Completeness3/5

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

    The tool is simple (one parameter, no nested objects, no output schema). The description states the basic purpose but omits details about the return format, error cases, or whether the list is ordered/filtered beyond 'pending'. While adequate for a basic list, it leaves gaps that an agent might need to resolve through assumptions.

    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 description coverage is 100% for the single parameter 'teamId' with a basic 'Team ID' description. The tool description adds no additional meaning to the parameter, 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 the specific action ('Get list') and resource ('pending invitations') with a scope ('for a team'). This distinguishes it from sibling tools like create_team_invitations and delete_team_invitation, which involve different operations on the same resource.

    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 viewing pending invitations but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions. The 'pending' qualifier hints at a specific filter, but no comparisons to sibling tools are made.

    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?

    With no annotations, the description carries full burden for behavioral disclosure. It does mention 'Returns only the requested fields,' which is useful, but it omits details like pagination, read-only guarantees, or potential performance implications of a broad query.

    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 two sentences, front-loaded with the main purpose and metaphor, followed by use cases and return behavior. Every word earns its place—excellent conciseness and structure.

    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 query tool with 13 parameters, no output schema, and no annotations, the description gives high-level context but lacks critical specifics like result limits, ordering, or a definitive read-only statement. It is adequate but not fully complete.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema, tying 'bulk operations' to parameter usage but not explaining individual parameters beyond what is already documented.

    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 queries and filters shapes, using a memorable 'grep for shapes' metaphor. However, it does not explicitly distinguish itself from sibling tools like search_shapes, so it falls short of a 5.

    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 use cases: 'bulk operations like changing color themes, alignment, or filtering by area/type.' It does not mention when not to use the tool or alternatives, but the context is strong enough for a 4.

    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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action and purpose, without mentioning side effects, permissions, reversibility, or any operational constraints. The description does not contradict annotations (none exist), but it adds minimal behavioral context beyond the tool 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 one concise sentence that front-loads the operation ('Create a new snapshot') and includes a brief purpose clause. Every word adds value; there is no filler or redundancy.

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

    Completeness4/5

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

    For a simple create operation with only two parameters, 100% schema coverage, and no output schema, the description is sufficiently complete. It clearly conveys the core action and differentiates from snapshot-related siblings, though it could optionally mention return behavior or follow-up actions.

    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%, with both fileId and label already described in the schema. The description itself adds no additional parameter-level detail, so the baseline score of 3 is appropriate since the schema does the heavy lifting.

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

    Purpose5/5

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

    The description uses a specific verb+resource structure ('Create a new snapshot (version) of a file') and clearly differs from sibling tools like restore_file_snapshot, update_file_snapshot, and delete_file_snapshot. The purpose is unambiguous and directly states what the tool accomplishes.

    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 ('for backup/versioning'), implying when to use it compared to snapshot-related siblings. It does not explicitly state exclusions or alternatives, but the context is sufficient for an agent to infer that this is for creation, not restoration or modification.

    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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the operation without mentioning read-only behavior, return format, pagination, or how nested/grouped shapes are handled, which is minimal transparency.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no wasted words, making it highly concise 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?

    For a simple two-parameter getter, the description is mostly sufficient. However, since there is no output schema, it does not clarify what 'shapes' includes or whether pagination applies, though the low complexity keeps this from being a major 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?

    The input schema fully describes both required parameters (fileId and pageId) with simple descriptions. The tool description adds no extra parameter context beyond the schema, so the 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 'Get all shapes on a specific page' uses a specific verb ('Get') and clearly identifies both the resource (shapes) and the scope (a specific page). This distinguishes it from sibling tools like query_shapes or get_shape_properties, which imply filtered or single-shape operations.

    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 clear usage when you need all shapes on a specific page. However, it does not explicitly mention alternatives or when not to use this tool, leaving some ambiguity relative to similar shape-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?

    With no annotations provided, the description carries the full burden. It does disclose a behavioral trait by stating 'Returns recursive list of libraries used by that library,' but it lacks details on permissions, reversibility, or side effects of the linking operation. This is a clear gap but not completely inadequate.

    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 two concise sentences with no waste. The first sentence states the action and purpose, the second provides return behavior. It is well front-loaded and 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 tool with only two well-documented parameters and no output schema, the description adequately covers the action, purpose, and return value. It is slightly lacking in usage guidance and side-effect disclosure but is otherwise complete for its 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 description coverage is 100% for both parameters, so the schema already documents fileId and libraryId. The description adds no additional semantics beyond what is in the schema, aligning with 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 clearly states the action ('Link a file to a component library') with a specific purpose ('to use its components'). This distinguishes it from sibling tools like unlink_file_from_library and get_file_libraries.

    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 linking files to libraries but does not explicitly state when to use this tool over alternatives, nor does it mention any exclusions or prerequisites. It provides clear context but no comparative 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?

    No annotations are provided, so the description carries the burden of behavioral disclosure. The verb 'List' conveys a read-only operation, which is useful, but it does not mention response format, pagination, error behavior, or authentication requirements. It goes slightly beyond the bare minimum but lacks depth.

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

    Conciseness5/5

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

    The description is a single concise sentence, front-loaded with the action, and contains no wasted words. It is appropriately sized for the tool's simplicity.

    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 one-parameter list tool with no output schema, the description is largely sufficient. It clearly states what the tool does and what input is required. A more complete description might explicitly mention the return type (e.g., an array of webhooks), but this is reasonably implied by 'List all webhooks'.

    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 'teamId' described as 'Team ID to get webhooks for'. The description does not add further parameter semantics beyond what the schema already provides, 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 uses a specific verb ('List') and resource ('webhooks') with a scope ('for a team'). It clearly distinguishes the tool from sibling tools like create_webhook, update_webhook, and delete_webhook.

    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: use this tool to retrieve webhooks for a given team. However, it does not explicitly state when to choose this over alternatives or provide exclusions. The context is clear but there is no explicit guidance differentiating it from other webhook operations.

    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?

    With no annotations provided, the description carries the full burden of disclosure. It mentions the purpose (unlocking to allow deletion) but does not disclose potential side effects, idempotency, permission requirements, or behavior when the snapshot is already unlocked. The basic action is clear, but behavioral details are sparse.

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

    Conciseness5/5

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

    The description is a single, focused sentence with no filler words. Every word contributes to the meaning, making it highly concise 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?

    For a simple tool with one parameter and no output schema, the description is mostly adequate. It explains the tool's purpose and a key usage context (allowing deletion), but lacks any mention of prerequisites or edge cases. Given the simplicity, however, 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 description coverage is 100%, so the parameter is fully documented in the schema ('Snapshot ID to unlock'). The description adds no additional meaning beyond the schema, matching the baseline for high 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?

    The description clearly states the action ('Unlock') and the resource ('a snapshot'), and adds the purpose ('to allow deletion'), which distinguishes it from sibling tools like lock_file_snapshot, restore_file_snapshot, or delete_file_snapshot. It is specific and not a tautology.

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

    Usage Guidelines3/5

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

    The phrase 'to allow deletion' implies the tool is used before deleting a locked snapshot, but it gives no explicit when-to-use or alternatives. There is no guidance on when not to use it or mention of lock_file_snapshot as the inverse operation, leaving the usage context only implied.

    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?

    There are no annotations, so the description must carry the full burden of disclosing behavior. It states the tool 'move[s]' the thread, which implies a mutation, but it does not disclose side effects, permissions, reversibility, or coordinate system context. Beyond the core action, there is no additional 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 a single, concise sentence that gets straight to the point. It contains no filler, repeated information, or unnecessary qualifiers, earning the highest score for conciseness.

    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 positional update tool, the description is nearly complete given the rich schema and absence of an output schema. It covers the core intent, while the schema handles parameter specifics. Minor omissions like coordinate context (e.g., relative to the frame) prevent a perfect score, but overall 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?

    The schema already provides 100% coverage with descriptions for all five parameters, including 'New X position', 'New Y position', and 'Frame ID (required)'. The description adds no parameter-level details beyond the schema, so it matches the baseline for good 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?

    The description 'Move a comment thread to a new position' uses a specific action verb ('move'), names the resource ('comment thread'), and specifies the target ('new position'). It clearly distinguishes this tool from sibling tools like update_comment_thread_status or delete_comment_thread.

    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 clearly implies the tool is for repositioning comment threads, which is evident from the name and description. However, it does not explicitly mention when not to use it or recommend any alternative sibling tools, so it stops short of full usage differentiation.

    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?

    No annotations are provided, so the description carries the burden of behavioral disclosure. It indicates the flexible input mechanism ('provide either teamId or fileId'), which is a useful trait beyond the schema. However, it doesn't disclose what happens if both IDs are provided, return format, or whether any side effects occur. The 'Get' verb implies a safe read, but the description adds limited 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 a single, front-loaded sentence that immediately states the action and resource, then mentions the key input requirement. It contains no redundant words or filler, earning a perfect score for conciseness and structure.

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

    Completeness3/5

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

    With only two simple parameters and no output schema, the description is mostly adequate, but it leaves some gaps. It doesn't clarify what 'detailed information' includes or how conflicts are resolved if both teamId and fileId are provided. Given the absence of an output schema, the description should offer a bit more detail about the expected response or edge cases.

    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%, with both parameters already described as alternatives ('optional if teamId provided' and vice versa). The description merely restates this ('provide either teamId or fileId'), adding no new semantic meaning beyond what the schema already conveys. Therefore, 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 detailed information about a specific team' with a specific verb and resource, distinguishing it from sibling tools like list_teams (listing all teams) and get_team_stats (statistics). It also specifies the input options (teamId or fileId), making the tool's 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 Guidelines4/5

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

    The description provides clear context: use this tool when you need detailed information about a single team, identified by either teamId or fileId. While it doesn't explicitly exclude alternatives, the purpose is distinct enough from sibling tools that an agent can infer when to use it. It lacks explicit 'when-not-to-use' guidance but is not misleading.

    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?

    No annotations are provided, so the description carries full burden. It implies a read-only operation ('List') and adds the conditional input constraint, but does not disclose auth requirements, pagination, return format, or behavior when both/neither fileId/teamId are provided.

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

    Conciseness5/5

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

    The description is a single efficient sentence, front-loaded with the verb and resource. The parenthetical adds the key usage constraint without waste.

    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 listing tool with no output schema and no annotations, the description is minimally sufficient but incomplete. It doesn't explain return values, pagination, or edge cases like both parameters provided, which an agent would need for reliable 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?

    Input schema covers all three parameters with descriptions, so baseline is 3. The description reiterates the fileId/teamId conditionality already present in the schema and does not add new meaning for shareId.

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

    Purpose5/5

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

    The description uses a specific verb 'List' and identifies the resource as 'comment threads' with clear scope ('in a file or team'). It distinguishes itself from sibling tools like get_comment_thread (singular) and create_comment_thread by focusing on listing all threads.

    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 instruction 'provide either fileId or teamId' gives clear context on required inputs. However, it does not explicitly mention alternatives like get_comment_thread for single threads or get_comments for comments, nor any when-not-to-use 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?

    With no annotations, the description carries the full burden. It implies a read-only listing operation via the verb 'List', but does not explicitly state that it has no side effects, whether at least one ID is required, or what happens if multiple IDs are provided. The description adds minimal behavioral detail beyond the verb.

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

    Conciseness5/5

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

    The description is a single, concise sentence that front-loads the verb and resource. Every word contributes to the purpose, and there is no 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?

    Given the lack of annotations and output schema, the description provides the basic purpose but leaves gaps: it does not mention the shareId scope, explain what 'custom font variants' means, or describe the return structure. It is adequate but not fully complete for a tool with four optional 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?

    Schema descriptions cover all four parameters (100% coverage), so the baseline is 3. The description adds a little by grouping parameters into team/file/project, but it omits shareId and does not clarify whether parameters are mutually exclusive or combinable, so it does not elevate the score.

    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 'List', the resource 'custom font variants', and the scope 'for a team, file, or project'. This distinguishes it from sibling tools like create_font_variant and delete_font_variant, making the purpose unambiguous.

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

    Usage Guidelines4/5

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

    The description provides clear context that this tool is used to list font variants for a team, file, or project. However, it does not explicitly mention when not to use it or suggest alternative tools, but the context is strong enough to infer the primary use case.

    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?

    Without annotations, the description relies on the word 'list' to convey a read-only behavior and adds scope information ('user has access to'), which implies access filtering. However, it does not describe the return format, pagination, or any potential errors, leaving some behavioral details undisclosed.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no superfluous words. It communicates the essential action and scope efficiently.

    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 simplicity (no params, no output schema), the description covers the core purpose and scope, but it does not specify the response structure (e.g., array of team objects). The absence of an output schema means the description should have provided more detail on the return value, but the term 'list' partially compensates.

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

    Parameters4/5

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

    The tool has zero parameters, so the description cannot add parameter-specific meaning. Per the baseline rule for zero parameters, a score of 4 is appropriate.

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

    Purpose5/5

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

    The description uses a specific verb 'list' and clearly identifies the resource ('all teams') and the scope ('the user has access to'). This distinguishes it from sibling tools like get_team (single team) and team-related mutations.

    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 the tool is for enumerating all teams available to the user, but it provides no explicit guidance on when to prefer it over alternatives such as get_team or list_projects. There are no exclusions or alternative tool references, but the basic usage context is clear enough for a simple list operation.

    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?

    No annotations are provided, so the description carries the full burden. It discloses the tool is read-only ('Get') and lists the types of properties returned, but does not mention potential errors, permissions, or behavior when the shape is missing. This is minimal but acceptable for a simple fetch operation.

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

    Conciseness5/5

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

    The description is a single, compact sentence that front-loads the action and resource, then enumerates relevant attribute categories. No redundant words or 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 compensates by listing the kinds of attributes returned (colors, text properties, fonts, dimensions, effects). It does not fully specify the response structure, but for a property-getter, the description gives sufficient context for an agent to anticipate the return. Sibling tools clarify the read-only nature.

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

    Parameters3/5

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

    All three parameters are fully described in the schema (fileId, pageId, shapeId), so schema coverage is 100%. The description adds no extra parameter-level detail beyond implying shapeId identifies the specific shape, which aligns with 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 clearly states the tool retrieves detailed properties of a specific shape, enumerating categories like colors, text properties, fonts, dimensions, and effects. This distinguishes it from sibling tools like get_page_shapes (listing shapes) and query_shapes (searching).

    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 need exhaustive attributes of a single shape, which is clear context. It does not explicitly name alternatives or exclusions, but the purpose is unambiguous enough for an agent to select it appropriately.

    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?

    No annotations are provided, so the description carries the full transparency burden. It clearly signals a read operation ('Get'), but it does not disclose whether retrieving unread threads has side effects (e.g., marking them as read), nor does it mention return format, pagination, or permissions. For a simple read tool this is adequate but not thorough.

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

    Conciseness5/5

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

    The description is a single, front-loaded sentence with no filler. Every word adds value: the action, the resource, the 'unread' filter, and the 'team' scope.

    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 well-documented parameter, no nested objects, and no output schema. The description sufficiently states the action and scope for a basic retrieval. A slight deduction is made for not mentioning the return format or confirming there are no side effects, but overall it is complete for this 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?

    The input schema already documents the only parameter 'teamId' with 100% coverage. The description adds no parameter-specific semantics beyond what the schema provides, so the 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 uses a specific verb 'Get' with a clearly scoped resource 'all unread comment threads for a team'. This distinguishes it from sibling tools like 'list_comment_threads' or 'get_comment_thread' by adding the 'unread' qualifier and team scope.

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

    Usage Guidelines4/5

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

    It clearly indicates when to use this tool: when you need all unread comment threads for a team. However, it does not explicitly mention alternatives or exclusions (e.g., use 'list_comment_threads' for all threads), so it stops short of a full 5.

    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?

    No annotations are provided, so the description carries the full burden. It discloses the primary behavioral effect (prevents deletion) and the intent (protect important versions). However, it does not mention potential side effects, permissions required, or that the operation is reversible via unlock_file_snapshot. This is adequate but has gaps.

    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 one sentence, front-loaded with the action and outcome. It contains no filler or redundant information, earning a perfect conciseness score.

    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 tool with one parameter and no output schema, the description provides all necessary information: the action, the resource, and the purpose. It is complete for an agent to select and invoke the tool correctly, especially given the sibling set that includes unlock and restore operations.

    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 is fully self-descriptive for the single parameter snapshotId ('Snapshot ID to lock'). The description adds no additional parameter semantics. With 100% schema coverage, the baseline 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 uses a specific verb ('Lock') and resource ('snapshot') and clearly states the purpose: preventing deletion and protecting important versions. It distinguishes from siblings by specifying the effect (preventing deletion), which contrasts with unlock_file_snapshot and other snapshot operations.

    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 when to use the tool: when you want to protect a snapshot from deletion. It also hints at the use case ('protect important versions'). However, it does not explicitly mention when not to use it or provide alternatives (e.g., unlock_file_snapshot for reversing). The context is clear but lacks explicit exclusions.

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

  • Behavior4/5

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

    With no annotations, the description carries the burden of behavioral disclosure. It explicitly reveals a key side effect: deleting the font also removes all variants. This is important for an agent to know. However, it does not mention irreversibility, permission requirements, or what happens if the font is in use, but the main destructive behavior is covered.

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

    Conciseness5/5

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

    One short sentence that front-loads the action and adds a parenthetical clarifying side effect. Every word earns its place; 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 2-parameter delete operation with no output schema, the description covers the core action and the most critical side effect. It could mention permanence or require a confirmation, but given the simplicity and schema coverage, this 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 clear descriptions for both fontId and teamId. The description itself adds no parameter-level detail. Baseline 3 is appropriate because the schema carries the 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 uses a specific verb and resource ('Delete a custom font') and adds a critical scoping clarification ('removes all variants'). This distinguishes it clearly from sibling tools like delete_font_variant and update_font.

    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 when to use this tool: to delete an entire custom font, not just a variant. However, it does not explicitly mention the alternative delete_font_variant or state when not to use it, so it misses the 'when-not' dimension.

    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?

    No annotations are provided, so the description carries the full burden. It explicitly discloses the destructive behavior: 'will replace the current file content with the snapshot content'. This goes beyond the name and clearly indicates a mutation. It doesn't mention reversibility or permissions, but the core behavioral trait is transparent.

    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 sentences, front-loaded with the action, and every word earns its place. There is no redundancy or filler.

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

    Completeness4/5

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

    For a simple 2-parameter restore operation with no output schema, the description provides the essential behavioral information. It could mention reversibility or error conditions, but the core functionality is sufficiently covered for an agent to invoke it correctly.

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

    Parameters3/5

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

    Schema coverage is 100% with clear descriptions for both parameters (fileId, snapshotId). The description adds no additional parameter-level detail beyond what the schema provides, but it also doesn't conflict. Baseline 3 is appropriate since the schema does the heavy lifting.

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

    Purpose5/5

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

    The description clearly identifies the specific action ('Restore') and resource ('a file to a previous snapshot'), and specifies the effect ('replace the current file content with the snapshot content'). This differentiates it from sibling snapshot tools like create_file_snapshot or list_file_snapshots.

    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 a clear usage context: when you need to revert a file to a previous version, this is the tool to use. It does not explicitly mention alternatives or when-not scenarios, but the context is unambiguous enough for an agent to select it correctly.

    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

penpot-mcp-server MCP server

Copy to your README.md:

Score Badge

penpot-mcp-server 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/zcube/penpot-mcp-server'

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