Skip to main content
Glama
sweetrb

apple-mail-mcp

by sweetrb

Server Quality Checklist

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

  • Disambiguation5/5

    Every tool has a clearly distinct purpose, with explicit 'Do not use when' guidance preventing overlap. Single and batch variants are cleanly separated, and even the diagnostics tools (health-check, doctor, get-mail-stats, get-unread-count, get-sync-status) are precisely scoped.

    Naming Consistency4/5

    The vast majority follow a consistent snake_case verb_noun pattern (move-message, list-mailboxes, create-rule), with a uniform 'batch-' prefix for multi-item operations. However, 'doctor' and 'health-check' break the verb-first convention, though they remain semantically clear.

    Tool Count2/5

    At 50 tools, the surface is far beyond the typical well-scoped server. While the breadth covers many email subdomains, the sheer number—including 6 batch variants—makes the set feel heavy and harder to navigate.

    Completeness4/5

    The set covers the full lifecycle of messages, attachments, mailboxes, smart mailboxes, rules, templates, contacts, and diagnostics. A notable gap is the absence of a 'send-draft' tool, so drafts created via create-draft/use-template cannot be sent programmatically without re-specifying content.

  • Average 4.7/5 across 50 of 50 tools scored.

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

    • 18 of 18 community issues answered or closed in the last 6 months
    • 224 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

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

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

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

  • If you are the author, simply .

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

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

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

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

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

How is the quality score calculated?

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

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

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

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

Tool Scores

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It states that the tool returns whether Mail.app is running and whether sync activity is detected, but it does not explicitly disclose whether the operation is read-only, has side effects, or could trigger a sync. This leaves safety and interference aspects unaddressed.

    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 optimally concise with three labeled sentences: 'Use when', 'Returns', and 'Do not use when'. It is front-loaded, every sentence provides distinct value, and there is no redundant information.

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

    Completeness5/5

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

    This is a simple parameterless status-check tool with an output schema. The description provides sufficient context to select and invoke the tool: it states the purpose, return values, and exclusions. The existence of an output schema means detailed return format explanations are unnecessary.

    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 schema trivially covers all parameters. The baseline for 0 params is 4, and the description does not need to add parameter details since there are none.

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

    Purpose5/5

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

    The description clearly states the tool's purpose with a specific verb and resource: checking whether Mail.app is running and actively syncing. It explicitly lists what the tool returns, which distinguishes it from siblings like get-mail-stats and doctor.

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

    Usage Guidelines5/5

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

    The description explicitly includes 'Use when' and 'Do not use when' sections, naming the exact conditions and pointing to specific alternative tools (get-mail-stats, doctor). This provides clear, actionable guidance for when to use this tool versus others.

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

  • Behavior3/5

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

    There are no annotations, so the description carries the full burden for behavioral disclosure. It does disclose return contents and partial-coverage diagnostics, but it does not explicitly state that the operation is read-only or describe any side effects, permissions, or failure behavior. For a search operation the lack of side-effect warnings is less critical, but without annotations the description could still be more explicit.

    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 tightly structured with labeled sections: use when, returns, do not use when, and preference guidance. Every sentence serves a functional purpose, and the most actionable guidance is front-loaded.

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

    Completeness5/5

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

    The description covers what results look like, including diagnostic caveats, explicitly routes the agent away from inappropriate uses, and points to the dependent operations. With an output schema present and all parameters fully documented, nothing essential is missing for an agent to invoke this tool 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%, so the schema already documents all 10 parameters. The description adds a high-level summary of filter categories but no additional semantic detail beyond what the schema 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 states a specific action ('finding messages by query/sender/subject/date/read/flag filters') and clearly identifies the resource and the follow-up purpose (obtaining ids). It differentiates itself from list-messages, get-message, and get-thread, so an agent can tell it apart from its siblings.

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

    Usage Guidelines5/5

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

    Explicit 'Use when' and 'Do not use when' sections name the alternative tools (list-messages, get-message, get-thread) and the conditions that make them preferable. It also instructs the agent to prefer this tool first to obtain ids required by other operations, leaving no ambiguity about when to select it.

    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 exist, so the description carries the burden. It clearly discloses that the tool 'moves a real message between folders' and includes a safety warning. It also states the return value (a confirmation naming the destination mailbox). While it doesn't detail potential failure modes or permission requirements, it provides adequate transparency for a simple 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?

    Every sentence earns its place. The description uses a clear 'Use when'/'Do not use when' structure, includes a return note, and ends with a safety caveat. It is concise (about 3 sentences) and front-loaded with the most critical information.

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

    Completeness4/5

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

    Given the simplicity of the tool (3 params, no nested objects) and the presence of an output schema, the description covers the essential aspects: when to use, alternatives, safety, and return value. It could mention error conditions or edge cases (e.g., what happens if the mailbox doesn't exist), but it preemptively advises to confirm the mailbox. This is complete enough for typical use, though not exhaustive.

    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 only 33% (only 'account' has a description). The tool description clarifies that 'id' refers to the message id and 'mailbox' to the destination folder, adding meaning beyond the schema. However, 'account' is left to the schema's description, and no additional context is given for the id pattern or mailbox naming conventions. The description partially compensates for the low coverage but does not fully explain all parameters.

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

    Purpose5/5

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

    The description clearly states the action: 'moving a single message (by id) into another mailbox/folder' with examples (archiving, filing). It distinguishes itself from batch-move-messages and delete-message, making the tool's unique scope explicit.

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

    Usage Guidelines5/5

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

    Extremely explicit usage guidance: includes 'Use when' and 'Do not use when' with specific alternatives (batch-move-messages, delete-message). Also advises using list-mailboxes to verify destination and search-messages/list-messages to confirm id, providing a clear decision framework.

    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 full transparency burden. It warns that the tool 'renames a real folder in the mail account' and stresses case-sensitivity and confirming oldName matches exactly. It also mentions the return value (a confirmation). However, it doesn't disclose potential side effects like whether existing links break or if the operation is reversible, which prevents a higher score.

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

    Conciseness5/5

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

    The description is concise and well-structured with labeled sections: 'Use when', 'Returns', 'Do not use when', and 'Safety'. Each sentence serves a purpose without redundancy, front-loading the primary action.

    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 3-parameter tool, the description covers purpose, usage boundaries, safety, and return value. It lacks details on error handling or edge cases (e.g., if the mailbox doesn't exist), but given the output schema exists and the operation is straightforward, it is fairly complete.

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

    Parameters3/5

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

    Schema coverage is only 33%, so the description must compensate. It explains oldName and newName contextually (renaming from old to new) and notes case-sensitivity, adding value beyond the schema. However, it doesn't clarify the 'account' parameter's role or whether it's required, and it doesn't elaborate on format or constraints. Partial compensation but not thorough.

    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: 'renaming an existing mailbox/folder from oldName to newName within an account.' It uses a specific verb (rename) and resource (mailbox/folder), and distinguishes from create-mailbox and delete-mailbox by explicitly naming those alternatives.

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

    Usage Guidelines5/5

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

    The description provides explicit when-to-use and when-not-to-use guidance: 'Use when: renaming...' and 'Do not use when: creating a new folder (use create-mailbox) or deleting one (use delete-mailbox).' It also recommends verifying the current name with list-mailboxes, which is practical context.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It does describe the return format ('overall healthy/unhealthy status with a pass/fail line per check') and implies it is non-invasive, but it does not explicitly state whether it has side effects, requires permissions, or if checks are read-only. For a health-check tool, this is adequate but leaves some ambiguity about potential network or system impacts.

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

    Conciseness5/5

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

    The description is three short, targeted sentences: 'Use when: ...', 'Returns: ...', and 'Do not use when: ...'. Every sentence provides essential guidance with no fluff or repetition, 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.

    Completeness5/5

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

    For a tool with no parameters and a simple health-check function, the description covers the essential context: when to use it, what it returns, and when to avoid it. The output schema likely details the checks further, so the description is complete enough for this low-complexity tool.

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

    Parameters4/5

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

    The tool has zero parameters, and the schema is empty. The baseline for 0 parameters is 4, and the description adds context by explaining what the tool checks (Mail.app reachability and basic server checks). This is sufficient since there is no parameter detail to compensate for.

    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: 'a quick check that Mail.app is reachable and the server's basic checks pass.' It uses a specific verb ('check') and resource (Mail.app/server), and distinguishes itself from the more detailed 'doctor' tool by emphasizing 'quick check' versus 'detailed diagnostics.'

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

    Usage Guidelines5/5

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

    Explicit when-to-use and when-not-to-use guidance is given: 'Use when: doing a quick check...' and 'Do not use when: you need detailed permission/account/IMAP/SMTP diagnostics with remediation steps (use doctor).' This clearly directs the agent to an alternative tool, satisfying the criteria.

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

  • Behavior4/5

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

    With no annotations, the description carries the behavioral disclosure burden. It explains that the tool returns message IDs plus selected fields and partial-coverage diagnostics when mailboxes are skipped. It does not explicitly state that the operation is read-only or describe ordering guarantees, but 'browsing' strongly implies a safe read 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 well-structured with clear 'Use when', 'Returns', and 'Do not use when' sections. Every sentence serves a purpose, and the most important usage guidance is front-loaded.

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

    Completeness5/5

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

    For a list tool with six parameters, an output schema, and many sibling tools, this description is complete. It covers purpose, exclusions, return shape, diagnostics, and downstream use cases without relying on the agent to infer anything critical.

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

    Parameters3/5

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

    The input schema already documents all six parameters with 100% coverage, so the description does not need to explain each one. It does add useful context by grouping parameters around sender filtering, unread-only filtering, and limit/offset pagination, but that is only marginal added meaning beyond the schema.

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

    Purpose5/5

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

    The description states a specific action and resource: listing recent messages from a mailbox and retrieving their IDs. It clearly distinguishes itself from search-messages and get-message rather than merely restating the tool name.

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

    Usage Guidelines5/5

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

    It explicitly says when to use the tool ('browsing a mailbox's recent messages... and you need their ids') and when not to use it, naming search-messages for specific criteria and get-message for retrieving a body. It also connects to batch/read/mark/delete/move tools, giving the agent strong routing 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?

    The description mentions that the tool returns a confirmation, which adds some behavioral context. However, with no annotations present, it does not disclose what happens when the message is already unflagged, whether the operation is idempotent, or any error conditions. This leaves some ambiguity 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 concise (three sentences) and front-loaded with the primary usage condition. Every sentence adds value: use case, return value, exclusions, and id sourcing. No redundant or filler content.

    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 single-parameter tool with an output schema, the description covers all essential guidance: when to use, when not to use, how to obtain the parameter, and what to expect as a return value. It is fully sufficient for an agent to select and invoke the tool correctly.

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

    Parameters4/5

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

    Schema coverage is 0%, so the description must compensate. It explains the single parameter 'id' by saying 'by id' and instructs the user to get the id from search-messages or list-messages first. This provides practical guidance beyond the raw schema pattern and helps the agent understand the param's provenance.

    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 ('removing'), the resource ('flag from a single message'), and the scope ('by id'). It also differentiates from sibling tools by specifying 'single' versus batch operations and removal versus adding a flag.

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

    Usage Guidelines5/5

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

    Explicit 'Use when' and 'Do not use when' sections directly state the appropriate usage and name alternatives (batch-unflag-messages, flag-message). Additionally, it tells the user to obtain the id via search-messages or list-messages first, providing clear operational context.

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

  • Behavior4/5

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

    With no annotations provided, the description discloses that the tool 'creates a real folder' and includes a safety warning to confirm name and target account. It also states the return value is a confirmation. This covers the key side effect, though it omits details like permissions or duplicate handling.

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

    Conciseness5/5

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

    The description is front-loaded with the primary use case, followed by return info, exclusions, and a safety reminder. Every sentence is purposeful and no redundant text exists.

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

    Completeness4/5

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

    Given the tool's simplicity and the presence of an output schema, the description covers creation, return value, alternatives, and safety. It could mention error cases or uniqueness requirements, but it is sufficiently complete for an agent to use it correctly.

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

    Parameters4/5

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

    The schema covers 'account' with a description but not 'name' (50% coverage). The description adds context by referencing 'name and target account' in the safety note and clarifying the purpose of the main parameter. It does not fully specify name constraints, but the schema's minLength provides some guidance.

    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 a new mailbox/folder in an account.' It distinguishes from sibling tools by explicitly naming rename-mailbox and delete-mailbox as alternatives.

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when:' and 'Do not use when:' guidance, naming specific alternatives (rename-mailbox, delete-mailbox) and recommending list-mailboxes to check existing mailboxes. This gives the agent clear decision criteria.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action (disable), clarifies it does not delete the rule, and mentions the return value (confirmation). However, it does not cover error cases (e.g., rule not found) or idempotency, which slightly limits transparency.

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

    Conciseness5/5

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

    The description is concise, front-loaded with the primary use case, and every sentence adds value. It avoids fluff and provides both guidance and return information in three short sentences.

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

    Completeness4/5

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

    For a low-complexity tool with one parameter and an output schema, the description is largely complete. It covers purpose, usage, alternatives, and return value. The only gap is lack of error-handling details, but the presence of an output schema partially mitigates this.

    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 schema provides a simple 'name' string with no description, and schema coverage is 0%. The description compensates by explaining that the name refers to an existing rule and advising use of list-rules to confirm the exact name, giving practical meaning to the parameter.

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

    Purpose5/5

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

    The description clearly states the tool's function: turning off an existing Mail rule by name without deleting it. It explicitly distinguishes this from sibling tools like enable-rule and delete-rule, making the purpose unambiguous and easy to differentiate.

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

    Usage Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' guidance, listing alternatives for related operations (enable-rule, create-rule, delete-rule) and recommending list-rules to confirm the exact name. This is exemplary usage guidance.

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

  • Behavior4/5

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

    No annotations are present, so the description carries the burden. It discloses that templates are written to an on-disk store, persist across restarts, and that passing an existing id overwrites. It also mentions the return value (name and id). This is strong coverage, though it doesn't address permissions or error conditions.

    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 structured paragraph with labeled sections (Use when, Returns, Do not use when, Safety). Every sentence adds value, though it is slightly verbose. It remains efficient and scannable.

    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?

    Covers creation, update, return values, persistence/overwrite behavior, and exclusions. With an output schema noted, it fully equips an agent to call the tool correctly. No critical gaps.

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

    Parameters4/5

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

    Schema coverage is only 50%, but the description compensates by explaining the role of core parameters: name, subject, body, optional to/cc, and id for updating. It clarifies that id distinguishes update from creation, which the schema alone does not convey.

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

    Purpose5/5

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

    The description clearly states the tool creates or updates reusable email templates, naming the key fields (name, subject, body, to/cc). It also distinguishes itself from siblings by mentioning updating via id and explicitly contrasting with use-template, create-draft, and send-email.

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when' and 'Do not use when' sections, naming alternative tools (create-draft, send-email, use-template) for other scenarios. This leaves no ambiguity about when to select this tool.

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

  • Behavior5/5

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

    With no annotations provided, the description fully carries the transparency burden. It discloses that messages are moved to Trash, returns counts and failure reasons, warns it is destructive, requires explicit user confirmation, and explains the subtle id-scoping rule (ambiguous ids are 'refused, not guessed'). No contradiction with annotations since none exist.

    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 organized into clear labeled sections ('Use when', 'Do not use when', 'Safety'), each sentence earning its place. It is slightly longer than necessary—some redundancy between 'moves them to Trash' and 'destructive'—but every detail serves a purpose, making it highly scannable and dense.

    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 moderate complexity from the bulk operation, scoping rules, and failure modes, the description covers all essentials: what it does, what it returns, when not to use it, and critical safety/precondition steps. It does not explicitly state idempotency or concurrency behavior, but nothing important is missing for this tool's usage.

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

    Parameters4/5

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

    Schema coverage is 67% (sourceAccount and sourceMailbox have descriptions, ids does not). The description adds substantial meaning to the 'ids' parameter (1–100, mailbox-scoped) and explains how sourceMailbox/sourceAccount pin ids to a mailbox and how ambiguous matches are handled, going well beyond the schema's basic field 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: 'deleting multiple messages in one call (1–100 ids; moves them to Trash).' It uses a specific verb-resource pairing and explicitly distinguishes itself from siblings by naming 'delete-message' (single) and 'batch-move-messages' (filing), making the purpose unambiguous.

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

    Usage Guidelines5/5

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

    It gives explicit 'Use when' and 'Do not use when' guidance, naming specific alternative tools (delete-message, batch-move-messages) and instructing to 'search-messages/list-messages first to confirm every id is correct before deleting.' This is model guidance for an agent.

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

  • Behavior5/5

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

    With no annotations provided, the description fully bears the behavioral disclosure burden. It reveals the default dry-run safety, the fact that dryRun=false edits Apple Mail's SyncedSmartMailboxes.plist with backup and atomicity, that existing entries are preserved, and that the scan can be slow on large mailboxes. This is exceptionally transparent for a mutation-capable 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 well-structured with labeled sections (Use when, Returns, Do not use when, Safety), and every sentence provides valuable information. It is appropriately sized for a complex tool and front-loads the primary use case.

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

    Completeness5/5

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

    The description covers purpose, usage alternatives, return values, safety, side effects, and performance. Given the tool's complexity (3 parameters, no annotations, output schema present), the description is complete and self-sufficient. Output schema exists so return format details are not required in the 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?

    Schema coverage is 100%, so the baseline is 3. The description adds some behavioral context for dryRun (safe proposal vs. actual creation) but does not significantly expand parameter semantics beyond what the schema already documents. The 'scans up to ~400 recent messages' detail adds performance context rather than clarifying parameter meaning.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: auto-discovering newsletter/bulk senders in inboxes and optionally creating a dedicated smart mailbox per sender. It uses specific verbs and names the resource (INBOX(es) and smart mailboxes), and it distinguishes itself from create-smart-mailbox and create-mailbox.

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

    Usage Guidelines5/5

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

    The description explicitly provides 'Use when' and 'Do not use when' sections, naming alternative tools (create-smart-mailbox for known senders, create-mailbox for real folders). This gives clear contextual guidance for when to select this tool vs. siblings.

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

  • Behavior5/5

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

    No annotations are provided, so the description carries the full burden. It discloses destructive consequences, removal of contained messages, requirement for explicit user confirmation, and prerequisite to list-mailboxes first. This is highly 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?

    The description is concise, front-loaded with use cases, and structured into clear sections (Use when, Returns, Do not use when, Safety). Every sentence adds value without redundancy.

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

    Completeness5/5

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

    For a destructive tool with no annotations, the description covers purpose, usage boundaries, return value, safety, prerequisites, and needed confirmation. It is fully contextual.

    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 50% (account has description, name does not). The description adds some context (e.g., exact name confirmation via list-mailboxes) but does not deeply elaborate on parameters. Since coverage is moderate and some extra meaning is added, a 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 deletes a mailbox/folder, uses a specific verb+resource, and distinguishes from siblings by naming alternatives like rename-mailbox and delete-message/batch-delete-messages.

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

    Usage Guidelines5/5

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

    Explicitly provides when to use ('deleting a mailbox/folder'), what it returns, and when not to use (renaming, deleting messages), naming specific alternative tools. This is excellent guidance.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden and does well: it flags the destructive nature, requires explicit user confirmation, and advises confirmation of the id. It doesn't cover all edge cases (e.g., attachments), but it covers the critical safety aspects. Slightly more detail on reversibility would push it higher.

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

    Conciseness5/5

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

    The description is concise and well-structured using labeled sections (Use when, Returns, Do not use when, Safety). Every sentence adds value, with no fluff or repetition.

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

    Completeness5/5

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

    For a simple one-parameter destructive action with an output schema, the description covers all necessary context: when to use, what happens, and safety checks. It also differentiates from similar tools, making it complete for agent use.

    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?

    There is only one parameter, id. The description explicitly says 'by id' and clarifies it's a message id. The schema provides a pattern, which helps further. The description adds enough context for the agent to understand the parameter's role without redundancy.

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

    Purpose5/5

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

    The description clearly states it deletes a single message by id and moves it to Trash. It distinguishes from siblings by explicitly pointing to batch-delete-messages and move-message, making the purpose unambiguous.

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

    Usage Guidelines5/5

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

    The description provides explicit guidance with 'Use when' and 'Do not use when', naming alternatives (batch-delete-messages, move-message). It also recommends verifying the id first, which is actionable for agent decision-making.

    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 full burden. It discloses that the rule is removed permanently, warns it is destructive, and requires explicit user confirmation plus a preliminary list-rules call. This is strong transparency, though it does not mention error handling or behavior for non-existent names. The output schema likely covers return value format.

    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 tightly formatted into four labeled segments (Use when, Returns, Do not use when, Safety), each earning its place. It is front-loaded with the primary use case and avoids redundant content.

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

    Completeness5/5

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

    The tool is simple (one parameter, no nested objects) and has an output schema to document return values. The description covers when, when-not, prerequisites, and safety completely. No gaps are apparent.

    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 schema provides only a 'name' field with minLength. The description clarifies that name refers to the rule name and emphasizes using list-rules to confirm the exact name, adding practical meaning. It does not discuss case sensitivity, but for a single parameter it is sufficiently helpful.

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

    Purpose5/5

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

    The description opens with 'Use when: permanently removing a Mail rule by name,' which clearly specifies the verb and resource. It further differentiates from sibling tools by explicitly mentioning disable-rule and create-rule, making the purpose unambiguous.

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

    Usage Guidelines5/5

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

    Provides explicit use and non-use guidance, naming alternatives (disable-rule, create-rule) and recommending list-rules first to confirm the exact name. This fully addresses when to use the tool versus alternatives.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden. It discloses the diagnostic (non-mutating) nature, the specific areas checked, and the return format (formatted text plus structured checks). It does not explicitly state 'read-only' or mention potential side effects, but the diagnostic framing strongly implies a safe analysis operation, which is sufficient for a zero-parameter 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 three sentences, front-loaded with 'Use when', and includes a return-value note and a clear 'Do not use when' with alternatives. Every sentence earns its place—no fluff or redundancy.

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

    Completeness5/5

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

    Given the tool's low complexity (zero parameters) and the presence of an output schema, the description adequately covers the purpose, target issues, return type, and exclusions. It provides enough context for an agent to select and invoke it confidently without further detail.

    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 0 parameters, so the schema coverage is trivially 100%. Per the calibration rule, a 0-parameter tool receives a baseline of 4, and there are no additional parameter semantics needed since no inputs exist.

    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 diagnoses Mail.app automation permissions, account state, and IMAP/SMTP backends, which is a specific verb+resource+scope. It also distinguishes itself from siblings by naming alternatives like health-check and get-mail-stats, 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 Guidelines5/5

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

    Explicitly provides both 'Use when' conditions (troubleshooting setup problems) and 'Do not use when' exclusions (quick up/down status, message counts), with named alternative tools (health-check, get-mail-stats). This gives clear decision guidance for when to invoke this tool.

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

  • Behavior4/5

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

    Since no annotations are provided, the description must carry the transparency burden. It discloses that the tool turns on an existing rule and returns a confirmation. It stops short of covering idempotency (e.g., enabling an already-enabled rule) or error scenarios, but for this simple operation, the core behavior and outcome are clear.

    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 compact, using a clear 'Use when' / 'Do not use when' structure. Every sentence earns its place: purpose, return value, exclusions, and a useful hint about list-rules.

    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 tool with a single simple parameter and an output schema, the description fully covers what the tool does, when to use it, what it returns, and how to verify the parameter. Sibling references further complete the contextual picture.

    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 schema has 0% description coverage, so the description must compensate. It explains that the 'name' parameter is the rule's exact name through 'turning on an existing Mail rule by name' and 'confirm the exact rule name.' This adds meaningful semantic detail beyond the raw schema.

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

    Purpose5/5

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

    The description clearly states the tool's function: 'turning on an existing Mail rule by name.' This uses a specific verb (turning on) and resource (existing Mail rule), and distinguishes it from sibling tools like disable-rule, create-rule, and delete-rule.

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when' and 'Do not use when' guidance, naming alternatives for opposite or related operations. Also advises using list-rules to verify the exact rule name, which is actionable context for correct invocation.

    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 discloses that the operation returns a confirmation, explains the dual route (AppleScript flag index vs IMAP $MailFlagBit keywords), and notes color behavior on both routes. This exceeds a generic mutation statement, though it does not address auth or error conditions.

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

    Conciseness5/5

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

    Four focused segments (Use when, Returns, Do not use when, Note) with no filler; every sentence provides actionable information. The structure makes it easy to scan and quickly extract key facts.

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

    Completeness5/5

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

    Given the simple 2-parameter operation, the description covers purpose, usage boundaries, return value, and a subtle implementation detail. The presence of an output schema further reduces the need to describe return structure, making this complete for the tool's complexity.

    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 description adds meaning to the 'id' parameter by directing the user to search-messages/list-messages to obtain it. The color parameter is fully described in the schema with an enum and detailed explanation of its effect. Schema coverage is 50%, so the description partially compensates for the undocumented 'id' property.

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

    Purpose5/5

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

    The description explicitly states 'flagging a single message (by id), optionally with a color', which is a specific verb+resource and immediately distinguishes from batch flagging (batch-flag-messages) and unflagging (unflag-message). The color options are enumerated, leaving no ambiguity about 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 Guidelines5/5

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

    Offers explicit use-when and do-not-use-when guidance, naming batch-flag-messages and unflag-message as alternatives. It also instructs the user to obtain the id from search-messages or list-messages first, providing a clear workflow context.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries the full burden. It discloses the fast IMAP STATUS optimization and the all-accounts path behavior. However, it does not explicitly state that it is read-only or has no side effects, though this is strongly implied by the purpose.

    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 tightly structured with 'Use when', 'Returns', and 'Do not use when' sections. Every sentence earns its place, is concise, and key information is front-loaded.

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

    Completeness5/5

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

    Given the tool's simplicity (one optional parameter, no annotations) and the presence of an output schema, the description covers the essentials: when to use, what it returns, and when not to use. No critical information is missing.

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

    Parameters4/5

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

    The schema already fully describes the account parameter (100% coverage). The description adds value by clarifying the 'all-accounts path' when the parameter is omitted, which is not explicit in the schema and helps the agent correctly choose whether to pass the parameter.

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

    Purpose5/5

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

    The description clearly states the tool's function: aggregate mailbox statistics including total/unread counts, recent activity counts, and per-account breakdown. It uses a specific verb and resource, and distinguishes itself from sibling tools like get-unread-count and list-messages.

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

    Usage Guidelines5/5

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

    Explicit 'Use when' and 'Do not use when' sections provide clear context and explicitly name alternative tools (get-unread-count, list-messages, search-messages). This gives the agent precise decision criteria.

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

  • Behavior4/5

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

    Since no annotations are provided, the description carries the full burden. It explicitly states this is a read operation ('reading') and enumerates the exact return fields. It does not discuss errors, permissions, or side effects, but for a simple get-by-id read, this is sufficient and adds value 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 three short, labeled sentences (Use when, Returns, Do not use when). It is front-loaded with the purpose and avoids any filler, making every sentence earn its place.

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

    Completeness5/5

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

    Given the tool's simplicity (one parameter), the presence of an output schema, and rich sibling context, the description covers the essential use cases, exclusions, and return data. It is complete for an agent to select and invoke the tool correctly among many email-related siblings.

    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 sole parameter id is explained as the template's identifier, and the description explicitly warns when you don't have the id. This adds meaningful context beyond the raw schema field, which only specifies a string with minLength 1.

    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 reads a saved template by id and lists the returned contents (name, subject, default to/cc, body). It distinguishes itself from list-templates and use-template by explicitly naming them, 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 Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' guidance, including alternatives (list-templates for missing id, use-template for applying a template to a draft). This fully covers when to use the tool vs alternatives.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It explains the threading algorithm difference for imap: IDs vs normalized subject grouping, states the return shape, and implies a read-only operation through 'get' and 'Returns'. It does not discuss edge cases like empty threads or pagination, but the core behavior is disclosed.

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

    Conciseness5/5

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

    The description is compact and well-organized into usage, return, and exclusion sections. Every sentence provides actionable guidance without redundant restating of the tool name or schema.

    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 read-oriented conversation-retrieval tool, the description covers when to use it, how it behaves with different id formats, what it returns, and which sibling tools to use instead. Combined with a 100%-covered schema and an output schema, nothing essential is missing.

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

    Parameters4/5

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

    Schema description coverage is 100%, so each parameter already has a clear definition. The description adds meaningful context for the id parameter by explaining how imap: IDs trigger References/Message-ID threading while other IDs use normalized subject grouping, which is valuable beyond the raw schema.

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

    Purpose5/5

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

    The description clearly states the tool retrieves the whole conversation for a given message id, ordered oldest-first. It explicitly contrasts with get-message and search-messages, making the tool's scope easy to distinguish from siblings.

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

    Usage Guidelines5/5

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

    It gives an explicit 'Use when' condition (have one message id, want its conversation) and an explicit 'Do not use when' condition with named alternatives (get-message for single messages, search-messages for arbitrary criteria). This leaves little ambiguity about when to select this tool.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries the behavioral transparency burden. It discloses the returned fields (name, MIME type, size, count) and explicitly notes it does not return bytes, which sets accurate expectations for follow-up actions. It does not cover errors or permissions, but for a read-only enumeration tool this is acceptable.

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

    Conciseness5/5

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

    The description is four short sentences, each with a distinct role: when to use, what it returns, when not to use, and prerequisite. It is front-loaded with the core purpose and contains no filler.

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

    Completeness5/5

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

    With a single parameter, an output schema, and clear usage guidance, the description covers purpose, return values, alternatives, and prerequisite in a compact form. There are no significant gaps for an agent to select and invoke the tool correctly.

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

    Parameters4/5

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

    Schema coverage is 0% and the schema only provides a regex pattern, but the description clarifies that the sole 'id' parameter is the message id and tells the agent how to obtain it. The description compensates for the lack of schema-level semantic detail by tying the parameter to its real-world use.

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

    Purpose5/5

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

    The description clearly states it enumerates a message's attachments by id to discover their names, MIME types, and sizes. It distinguishes itself from sibling tools by explicitly noting that fetch-attachment and save-attachment handle byte content, while this tool does not.

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

    Usage Guidelines5/5

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

    It provides explicit 'Use when' and 'Do not use when' guidance, naming fetch-attachment and save-attachment as alternatives for byte retrieval. It also instructs the agent to obtain the message id from search-messages or list-messages first, giving a clear prerequisite for correct usage.

    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 clearly states the return content ('each rule's name and enabled/disabled state') and implies a read-only operation through the 'Use when' vs 'Do not use when' distinction. However, it does not explicitly declare that the operation has no side effects, nor mention auth or error behavior, which is a minor gap for a tool with no 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 three short, clearly structured sentences with helpful labels ('Use when', 'Returns', 'Do not use when'). Every sentence adds value and there is no redundant information, making it highly concise and well front-loaded.

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

    Completeness5/5

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

    For a zero-parameter, no-annotation, simple listing tool, the description fully covers when to use it, what it returns, and when not to use it. The existence of an output schema further reduces the burden, so the description is complete for its context.

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

    Parameters4/5

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

    The tool has zero parameters, so the schema documents 100% of them vacuously. Per guidelines, 0 params gives a baseline of 4. The description adds useful context about the output, but there are no parameter semantics to explain, so the baseline 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 ('discovering' / 'list') with a clear resource ('Mail rules') and scope ('whether each is enabled or disabled'). It distinguishes from sibling tools by explicitly naming enable-rule, disable-rule, create-rule, and delete-rule as alternatives for changes, so 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 Guidelines5/5

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

    It explicitly states 'Use when: discovering the Mail rules...' and 'Do not use when: you want to change a rule (use enable-rule / disable-rule / create-rule / delete-rule)', giving clear context and naming alternative tools. This is exactly the level of guidance expected.

    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 behavioral transparency burden. It discloses a notable edge case (German-localized macOS where AppleScript terms don't compile) and mentions the return content ('name and a short criteria summary'). While it doesn't explicitly state non-destructive intent, 'listing' implies read-only, and the edge case adds valuable behavioral context.

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

    Conciseness5/5

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

    The description is extremely concise, with two clear sections ('Use when' and 'Returns') and a 'Do not use when' clause. Every sentence serves a purpose, and the most critical usage direction is front-loaded.

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

    Completeness5/5

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

    For a zero-parameter list tool with an output schema, the description covers purpose, usage boundary, an important localization nuance, and return value summary. It is fully sufficient for an agent to select and invoke the tool correctly.

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

    Parameters4/5

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

    The tool has zero parameters, so the baseline for this dimension is 4 as per the rubric. The description doesn't need to add parameter semantics, and it correctly stays silent on parameters. The mention of 'criteria summary' is about the return value, not an input.

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

    Purpose5/5

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

    The description specifies the exact action ('listing Apple Mail smart mailboxes') and clearly distinguishes it from the sibling tool by stating 'Do not use when: listing real folders/mailboxes (use list-mailboxes)'. This makes the purpose unambiguous and differentiates it from closely related tools.

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

    Usage Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' instructions, naming the alternative tool (list-mailboxes). This meets the highest standard for usage guidance.

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

  • Behavior4/5

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

    With no annotations, the description carries the burden of behavioral disclosure. It discloses that the tool returns only id, name, and subject (not full body), and implies a read-only, non-mutating operation. It could add more context about potential errors or permission requirements, but for a simple list operation with zero parameters, the disclosure is reasonably complete.

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

    Conciseness5/5

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

    The description is extremely concise, using three short sentences that are front-loaded with the primary use case, followed by return details and exclusions. Every sentence earns its place with no filler or repetition.

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

    Completeness5/5

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

    The tool is simple (0 parameters) and has an output schema, so the description need not explain return values in depth. It fully covers when to use, what it returns, and when not to use, making it contextually complete for an agent to select and invoke the tool correctly.

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

    Parameters4/5

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

    The tool has zero parameters, so the baseline is 4. The description appropriately focuses on output and usage rather than parameter details, adding no unnecessary parameter-related text.

    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' saved email templates and their ids, with a specific verb and resource. It further distinguishes itself from siblings by explicitly stating it returns 'each template's id, name, and subject' and contrasts with get-template and use-template.

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

    Usage Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' guidance, naming alternative tools (get-template, use-template) for different use cases. This makes it very clear when to select this tool versus its siblings.

    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 burden. It states the action (mark as read) and the return behavior (confirmation). This is adequate for a simple mutation tool, though it doesn't disclose behavior for invalid ids or other edge cases.

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

    Conciseness5/5

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

    Three short sentences, front-loaded with 'Use when' and 'Returns'. Every sentence adds value with no redundancy or fluff.

    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 single-parameter tool with an output schema, the description covers purpose, usage, alternatives, and id sourcing, making it complete for an agent to select and invoke correctly.

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

    Parameters4/5

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

    Schema description coverage is 0%, but the description adds meaning by explaining the id is a message id and where to obtain it ('from search-messages or list-messages first'). The schema's pattern provides format constraints, but the description provides practical usage semantics.

    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: marking a single message by id as read. It distinguishes from siblings by explicitly naming batch-mark-as-read and mark-as-unread.

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

    Usage Guidelines5/5

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

    Provides explicit when-to-use ('Use when: marking a single message') and when-not-to-use ('Do not use when: marking several at once... or marking unread'), with named alternatives. It also instructs to get the id from search-messages or list-messages first.

    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 burden. It discloses the return value (a confirmation) and implies the mutation by stating the tool marks a message unread. However, it does not explicitly state permission requirements or reversibility, though these are less critical for this 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 concise and well-organized: starts with use case, then returns, then exclusions and prerequisites. Every sentence adds value, and it front-loads the most critical information.

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

    Completeness5/5

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

    For a single-parameter tool with an output schema, the description covers the core action, exclusions, return value, and id source. It is complete for the tool's complexity and leaves no significant gaps.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It explains the id parameter's role ('by id') and tells the user where to obtain it, adding context beyond the bare schema pattern.

    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 specific verb+resource: 'marking a single message (by id) as unread'. It clearly distinguishes from sibling tools like mark-as-read and batch-mark-as-unread by explicitly naming them in the 'Do not use when' clause.

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

    Usage Guidelines5/5

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

    Provides explicit when-to-use, do-not-use scenarios with named alternative tools (batch-mark-as-unread, mark-as-read), and even notes the prerequisite to get the id from search-messages or list-messages first.

    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 full transparency burden. It explains how resolution works (via RFC822 Message-ID), what each input yields (numericId or null, plus messageId and resolvedCount), and includes a version note about flag coloring behavior. It stops short of explicitly stating non-destructiveness or edge-case behavior, but the disclosed behavior is substantive and above average.

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

    Conciseness4/5

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

    The description is well-structured with 'Use when', 'Returns', and 'Do not use when' sections, and it leads with the main use case. It is slightly verbose due to the version note, but every sentence adds information and the structure akes it easy to scan. A more compact phrasing might be possible, but the length is justified.

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

    Completeness5/5

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

    Given this is a simple one-parameter tool with an output schema, the description fully covers when to use it, how it behaves, what it returns, and how it differs from alternative tools. The version note adds important contextual information. No critical gaps remain.

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

    Parameters5/5

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

    Schema coverage is 0%, so the description must explain the parameter. It clarifies the `ids` format (either numeric or `imap:` prefixed) and what happens to each form (numeric pass through, `imap:` resolved). This goes well beyond the raw JSON schema pattern and provides essential semantic context.

    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 that this tool resolves `imap:` message IDs into numeric Mail.app IDs, specifically needed for reply-to-message/forward-message. It distinguishes itself from sibling tools by noting that flag/move/mark tools work directly with `imap:` IDs, making this tool's unique purpose explicit.

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

    Usage Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' guidance, including concrete examples (reply-to-message/forward-message) and exclusions (numeric IDs already pass through, flag/move/mark operate directly). It also notes a version-specific change (2.10.0) that affects when this tool is needed for flag colors, showing strong awareness of alternatives.

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

  • Behavior4/5

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

    With no annotations present, the description transparently discloses that the tool writes a file to disk (destructive side effect), enforces path safety constraints on savePath and attachmentName, and returns a confirmation of the saved path. It does not mention overwrite behavior or permissions, but the disclosed constraints substantially cover the behavioral profile.

    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 tightly organized into labeled sections (Use when, Returns, Do not use when, Safety). Each sentence delivers distinct information without redundancy, and the structure front-loads the primary use case.

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

    Completeness4/5

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

    Given the tool's simplicity and the presence of an output schema, the description covers purpose, usage guidelines, return behavior, and safety constraints. Minor gaps such as overwrite semantics prevent a perfect score, but the description is highly usable for an agent.

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

    Parameters5/5

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

    The schema provides no property descriptions (0% coverage). The description compensates by defining all three parameters: id as message id, attachmentName as the attachment name, savePath as the destination directory, and the resulting file path as savePath/attachmentName. It also adds validation rules for attachmentName.

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

    Purpose5/5

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

    The description explicitly states the tool's action: writing a message attachment to disk using message id and attachmentName into savePath. It names the exact output file path format and distinguishes from sibling tools by mentioning fetch-attachment for inline bytes and list-attachments for unknown names.

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

    Usage Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' guidance, naming alternatives (list-attachments, fetch-attachment). This clearly instructs the agent on appropriate conditions and exclusions.

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

  • Behavior5/5

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

    With no annotations, the description fully discloses that the tool 'SENDS real email immediately and it cannot be unsent', requiring explicit user confirmation. It also mentions the default transport selection logic, which is critical 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 structured into clear sections (Use when, Returns, Do not use when, Safety) and every sentence provides value—alternatives, safety, and return information. It is detailed yet economical, with no filler.

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

    Completeness5/5

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

    For a tool with 8 parameters and significant side effects, the description covers all essential context: when to use, alternatives, safety, and return info. It is complete for an agent to make correct invocation decisions, especially given the presence of an output schema.

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

    Parameters3/5

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

    Schema coverage is 63%, and the description adds little beyond the schema—it reiterates that recipients are arrays and mentions attachments, but these are already in the schema. The transport default is also already described in the schema, so the description does not significantly enhance parameter understanding.

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

    Purpose5/5

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

    The description states the specific action: 'send a single email now to the given recipients' with optional attachments and transport. It clearly distinguishes from siblings like create-draft, reply-to-message, and send-serial-email by explicitly naming them as alternatives.

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when' and 'Do not use when' conditions, including specific alternatives for review (create-draft), replying (reply-to-message), and personalized copies (send-serial-email). This leaves no ambiguity about when to invoke the tool.

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

  • Behavior5/5

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

    With no annotations, the description carries full burden. It discloses that emails are sent immediately, cannot be unsent, require explicit user confirmation, and that recipients do not see each other. It also states the return value (per-recipient report), exceeding what annotations would provide.

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

    Conciseness5/5

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

    Four short, front-loaded sentences organized logically (Use when, Returns, Do not use, Safety). Every sentence adds critical information with no waste.

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

    Completeness5/5

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

    Given an output schema and 100% parameter coverage, the description covers selection, exclusions, safety, and return behavior. It is fully sufficient for an agent to decide when and how to 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 coverage is 100%, so parameters are already well-documented. The description adds context about placeholder replacement and per-recipient variables, but does not deeply elaborate on each parameter beyond what the schema already says. 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 ('sending individually personalized copies') and clearly identifies the resource (mail-merge to many recipients with placeholder substitution). It also distinguishes itself from siblings by naming send-email and create-draft as alternatives.

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

    Usage Guidelines5/5

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

    It provides explicit when-to-use conditions ('user has confirmed a mail-merge', max 100 recipients) and explicit when-not-to-use with named alternatives ('use send-email', 'use create-draft'). This is clear, actionable guidance.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the burden of disclosing behavior. It states that the tool creates a draft in Mail.app for review/send, not an immediate send, and returns a confirmation. It does not mention potential side effects on the template, but the core behavior is well disclosed.

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

    Conciseness5/5

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

    The description is concise and front-loaded with a direct 'Use when' statement. Every sentence adds value, clearly stating purpose, return value, and exclusions without unnecessary detail.

    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 tool with 5 params and an output schema, the description covers the essential use case, return value, and alternatives. It is sufficiently complete given the simplicity of the operation and the presence of an output schema.

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

    Parameters4/5

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

    Schema coverage is 80%, so baseline is 3. The description adds meaning by explaining the id is a template id and that recipients/subject/body are optional overrides. This clarifies the workflow beyond the schema, especially for the undocumented id parameter.

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

    Purpose5/5

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

    The description clearly states that the tool composes a new draft from a saved template by id, with optional overrides for recipients, subject, or body. It explicitly distinguishes itself from get-template and send-email, naming these sibling tools.

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when' and 'Do not use when' guidance with named alternatives (get-template, send-email). This makes the appropriate context and exclusions unambiguous.

    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 full burden and discloses return values ('counts of how many were marked read and how many failed') and an important edge case ('an id that matches in several mailboxes is refused, not guessed'). It does not mention idempotency or auth, but the core behavioral traits are 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?

    The description is well-structured with labeled sections ('Use when', 'Returns', 'Do not use when') and a concise final instruction. Every sentence serves a purpose without unnecessary padding or repetition.

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

    Completeness5/5

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

    Given the tool's parameter count and output schema, the description provides complete contextual guidance: usage conditions, alternatives, return counts, prerequisites, and ambiguous-id handling. It is sufficient for an agent to select and invoke the tool correctly.

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

    Parameters5/5

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

    The schema lacks a description for the 'ids' parameter and only partially covers sourceAccount/sourceMailbox. The description adds essential meaning by explaining that ids come from search-messages/list-messages and clarifying that sourceMailbox/sourceAccount is needed to pin numeric ids to a specific mailbox.

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

    Purpose5/5

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

    The description explicitly states the verb and resource: 'marking multiple messages (1–100 ids) as read in one call.' It also distinguishes itself from siblings by naming 'mark-as-read' for single messages and 'batch-mark-as-unread' for unread.

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

    Usage Guidelines5/5

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

    The description includes explicit 'Use when' and 'Do not use when' clauses with alternative tool names, and provides a clear prerequisite: 'Get the ids from search-messages or list-messages first.' It also explains the sourceMailbox/sourceAccount requirement.

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

  • Behavior5/5

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

    With no annotations, the description fully discloses key behavior: 'creates a draft only and sends nothing', 'the user must open Mail.app and send it themselves', and notes low risk. It also specifies the return value (confirmation with recipients and attachment count), leaving no ambiguity about 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 concise and well-structured with labeled sections ('Use when', 'Returns', 'Do not use when', 'Safety'), front-loading the most critical information. Every sentence adds value without redundancy.

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

    Completeness4/5

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

    Given the moderate schema coverage and absence of annotations, the description sufficiently covers usage, safety, and return value. It could optionally mention permission requirements or edge cases, but is complete enough for an agent to correctly invoke the tool.

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

    Parameters4/5

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

    Schema coverage is 57%, so the description compensates by clarifying 'to/cc/bcc are arrays, optional attachments' and noting that attachments can be inline or paths. It also contextualizes parameters by stating 'safe default for any new message' and tying output to attachments count, adding meaning beyond the schema.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: composing an email for user review in Mail.app before sending, distinguishing it as the safe default for new messages. It explicitly contrasts with send-email, making the resource and action unmistakable.

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

    Usage Guidelines5/5

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

    The description explicitly provides when to use ('when composing an email the user should review before sending') and when not to use ('when the user has already confirmed they want it sent now'), naming the alternative (send-email). This is exemplary guidance.

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

  • Behavior4/5

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

    With no annotations, the description carries full burden and does well by disclosing that it reads the macOS Contacts database directly, requires Full Disk Access, and does not require Contacts.app or Apple-Events grant. It also states return fields. Minor gaps: doesn't mention whether it is read-only explicitly or handle errors, but overall clearly describes 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 well-organized with clear 'Use when', 'Reads...', 'Returns...', and 'Do not use when' segments. Every sentence adds valuable information, no fluff, and 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.

    Completeness5/5

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

    For a simple search tool with one parameter and an output schema, the description covers all essential aspects: use case, when not to use, access method, prerequisites, and return values. There is no ambiguity about the tool's function or limitations.

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

    Parameters5/5

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

    The only parameter 'query' is given meaning by the description: it can be a name, organization, nickname, or email. This goes beyond the schema's generic 'string' definition and fully compensates for the 0% 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?

    States clearly what it does: looking up a person in Contacts by name, organization, nickname, or email to find email addresses and phone numbers. It uses a specific verb ('search') and resource ('Contacts'), and explicitly distinguishes from sibling tool search-messages by saying 'Do not use when: searching email messages...'.

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

    Usage Guidelines5/5

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

    Explicit 'Use when' and 'Do not use when' sections provide clear guidance on when to choose this tool over alternatives, including naming the alternative (search-messages). It also gives prerequisites (Full Disk Access, no need for Contacts.app running), which helps agent decide when this tool is viable.

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

  • Behavior5/5

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

    No annotations exist, so the description carries full burden. It discloses behavior: returns success/failure counts, the dual routing (AppleScript vs IMAP) for colors, and that ambiguous ids are refused rather than guessed. These are valuable behavioral details beyond the input schema.

    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?

    Each sentence earns its place. The text is structured into clear sections (use when, returns, do not use, note) and is front-loaded with the core purpose. No fluff or redundant content.

    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?

    Covers the full workflow: when to use, prerequisites (get ids first), parameter-specific guidance (sourceAccount/sourceMailbox pairing), the return format, edge case (ambiguous ids), and implementation detail (color applied on both routes). With output schema present, return values are well-covered; this description complements it fully.

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

    Parameters4/5

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

    Schema coverage is high (75%) with descriptions for color, sourceAccount, and sourceMailbox. The description adds extra meaning by explaining why sourceMailbox/sourceAccount are needed (pinning numeric ids, ambiguity refusal) and clarifying the color behavior across both routes, surpassing 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 states the tool flags multiple messages (1–100 ids) in one call with an optional color. It clearly distinguishes from siblings by explicitly naming flag-message for single flags and batch-unflag-messages for removing flags.

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when' and 'Do not use when' with named alternatives. It also instructs to get ids from search-messages or list-messages first and explains how to supply sourceMailbox/sourceAccount to disambiguate ids.

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

  • Behavior5/5

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

    No annotations exist, so the description carries full burden. It discloses return counts (unflagged and failed), the requirement for sourceMailbox/sourceAccount to pin numeric ids, and that ambiguous ids are refused rather than guessed. This is rich behavioral context beyond what the schema provides.

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

    Conciseness5/5

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

    The description is concise, front-loaded with the primary use case, and each sentence earns its place. No redundancy or filler.

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

    Completeness5/5

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

    For a batch mutation tool with an output schema, the description covers usage, alternatives, parameter disambiguation, and return behavior. It is sufficiently complete for an agent to select and invoke the tool correctly.

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

    Parameters4/5

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

    Schema coverage is 67%, with sourceAccount and sourceMailbox already described. The description adds crucial semantics for these parameters (pinning, refusal behavior) and clarifies the ids use case (1-100 messages). While it doesn't detail id format, the schema's pattern handles that.

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

    Purpose5/5

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

    Clearly states the tool removes flags from multiple messages (1-100 ids) in one call, with a specific verb and resource. Explicitly distinguishes from siblings by naming unflag-message for single and batch-flag-messages for adding flags.

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when' and 'Do not use when' guidance with alternative tool names. Also instructs to get ids from search-messages or list-messages beforehand, giving clear prerequisites.

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

  • Behavior5/5

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

    Despite no annotations, the description discloses that creating a rule has ongoing safety implications, including automatic action on real mail and the need to confirm with the user. It also mentions the default enabled state from the schema, adding behavioral context beyond the schema.

    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 well-organized with 'Use when', 'Returns', 'Do not use when', and 'Safety' sections, each adding unique value. It is concise yet comprehensive, with minimal fluff.

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

    Completeness5/5

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

    Given the complex nested schema and no annotations, the description covers safety, usage boundaries, and return format, making it complete for an agent to use without additional external context.

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

    Parameters4/5

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

    Schema coverage is low (20%) and the description explains key fields like matchAll, actions, and conditions, and references the enabled default. It could detail sub-fields (e.g., operators) but the core parameters are clarified.

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

    Purpose5/5

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

    The description states the tool creates a new Mail rule, with specifics on conditions and actions. It is clearly distinct from siblings like enable-rule and delete-rule. The purpose is explicit and actionable.

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when' and 'Do not use when' scenarios, naming alternative tools (enable-rule, disable-rule, delete-rule, list-rules). This directly guides the agent on when to invoke this tool versus siblings, which is exemplary.

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

  • Behavior5/5

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

    No annotations are provided, so the description carries the full burden, and it delivers: it discloses direct plist editing, backup creation (.bak), atomic writes, that existing smart mailboxes are not rewritten, and that Mail is not quit automatically. It also warns about Mail overwriting plist edits if running, which is valuable 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 structured with clear labeled sections: use when, returns, do not use, and safety. It is front-loaded with the core purpose, and every sentence adds distinct, useful information without redundancy.

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

    Completeness5/5

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

    The description fully covers invocation context, return behavior, exclusions, safety mechanisms, and operational prerequisites (quitting Mail). An output schema exists, so return-value detail is not required; remaining minor gaps like combined-criteria semantics do not undermine completeness.

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

    Parameters4/5

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

    Schema describes three of four params with 'contains' phrasing (75% coverage); the description adds the concept of 'substring' and groups them as sender/subject/body criteria. This provides some semantic clarification beyond the schema, though it does not give deep per-parameter 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 opens with 'Use when: creating an Apple Mail smart mailbox (a criteria-based virtual view)' and names the specific action and resource. It clearly distinguishes from 'create-mailbox' for real folders, and specifies the matching criteria (sender, subject, body substring).

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

    Usage Guidelines5/5

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

    The description includes explicit 'Use when' and 'Do not use when' instructions, citing 'create-mailbox' as the alternative for real folders. It also adds actionable context like German-localized macOS compatibility and the instruction to quit Mail first, giving the agent clear conditions for appropriate use.

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

  • Behavior5/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the tool is destructive, modifies SyncedSmartMailboxes.plist, creates a backup, writes atomically, preserves other smart mailboxes, and that removal is not undoable in-app. This exceeds expectations for 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 structured with clear labels (Use when, Returns, Do not use when, Safety), making it easily scannable. Every sentence provides necessary information without redundancy, and the most critical usage guidance appears first.

    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?

    This destructive tool has no annotations, but the description covers prerequisites, safety, file-level behavior, and exclusions. It also names the confirmation tool and the need to quit Mail, making it complete for safe invocation.

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

    Parameters4/5

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

    Although schema description coverage is 0%, there is only one parameter ('name') whose meaning is self-evident. The description adds value by emphasizing the name must be exact and recommending list-smart-mailboxes to confirm it, which indirectly clarifies the parameter's expected value.

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

    Purpose5/5

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

    The description uses a specific verb ('deleting') and resource ('Apple Mail smart mailbox (virtual view) by name'), clearly distinguishing this tool from siblings. It also explicitly names alternatives for real folders and messages, leaving no ambiguity about its scope.

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

    Usage Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' guidance, naming alternative tools (delete-mailbox, delete-message, batch-delete-messages). It also instructs to confirm the exact name with list-smart-mailboxes and quit Mail first, giving concrete prerequisites.

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

  • Behavior5/5

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

    With no annotations provided, the description carries the full burden and excels: it states the operation is destructive, removes permanently from the on-disk store, and requires explicit user confirmation. It also discloses the return type. This is comprehensive behavioral 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 concise, uses clear logical sections (Use when, Returns, Do not use, Safety), and every sentence adds value. No fluff, well-structured, and easy to parse.

    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 tool with one parameter, the description covers purpose, usage, alternatives, safety, parameter guidance, and return value. The output schema exists, so the description needn't detail return structure. All essential context is present.

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

    Parameters4/5

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

    Schema coverage is 0% and the only param is 'id' (string minLength 1). The description adds practical meaning by instructing to use list-templates first to confirm the id, giving context for how to obtain a valid value. It doesn't detail format, but the single simple parameter makes this adequate.

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

    Purpose5/5

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

    The description clearly states the action ('permanently removing a saved email template by id') and distinguishes from siblings by explicitly referencing get-template and save-template. The verb+resource combination is specific 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 Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' guidance, naming specific alternatives (get-template, save-template). It also advises using list-templates first to confirm the id, which is actionable and prevents misuse.

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

  • Behavior5/5

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

    With no annotations provided, the description carries full responsibility for disclosing side effects and requirements. It covers: no file left behind (but temp file used and deleted), no Full Disk Access needed, and explains the underlying AppleScript temp-directory mechanism. It also states the return format (base64 bytes with size and MIME type), giving a transparent behavioral contract.

    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 well-structured with clear sections: 'Use when', 'Returns', 'Do not use when', and 'Safety'. It is front-loaded with the primary usage, and each sentence contributes unique value — no fluff or repetition. The length is appropriate for the level of detail, covering purpose, exclusions, output, and safety in a compact manner.

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

    Completeness5/5

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

    Given the complexity and the presence of an output schema (which handles return structure), the description goes beyond the minimum. It explains when to use, when not to use with alternatives, side effects (temp file handling), permission requirements, and return content. It effectively addresses all essential context for correct invocation, including a dependency on list-attachments for unknown names.

    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 schema coverage is 0%, but the description adds meaning by stating 'by message id and attachmentName' and clarifying that attachmentName must be known (with a suggestion to use list-attachments). It doesn't elaborate on the id pattern, but the schema already has a permissive regex. The description gives sufficient semantic context to understand what each parameter represents and how to obtain the correct value.

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

    Purpose5/5

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

    The description explicitly states the tool's purpose: 'retrieving an attachment's raw bytes inline as base64 (by message id and attachmentName)'. It clearly differentiates from siblings by explicitly naming alternatives: 'use save-attachment' for saving to disk and 'use list-attachments first' when the attachment name is unknown. The verb+resource+scope is specific 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 Guidelines5/5

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

    The description provides explicit guidance: it starts with 'Use when:' and includes a dedicated 'Do not use when:' section that names concrete alternatives for both exclusions. This directly addresses when to use this tool versus list-attachments and save-attachment, which are the most relevant siblings.

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

  • Behavior5/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It prominently warns that default send=true sends real email immediately, cannot be unsent, and requires explicit user confirmation—or recommends send=false for review. It also states the return value, covering key side effects and safety.

    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 well-organized with labeled sections (Use when, Do not use when, Returns, Safety). Every sentence serves a purpose, front-loaded with the primary use case, and no unnecessary verbosity.

    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 potentially irreversible send operation, the description covers usage, alternatives, return value, safety, and key parameter semantics. The output schema exists, so return details are not burdensome. This is a complete and self-contained description.

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

    Parameters4/5

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

    Schema coverage is 50% (id and to lack descriptions), but the description compensates by clarifying 'to is an array', 'by id', and the purpose of the prepended body. It doesn't explain how to obtain id, but the schema provides a pattern and sibling tools imply the source. This adds meaningful value over the schema.

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

    Purpose5/5

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

    The description clearly states the action: forwarding an existing message by id to new recipients, with an optional prepended body. It also distinguishes from sibling tools like reply-to-message and send-email/create-draft, making the tool's unique 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 Guidelines5/5

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

    The description explicitly provides 'Use when' and 'Do not use when' sections, naming alternative tools (reply-to-message, send-email, create-draft) and specifying the condition 'forwarding an existing message'. This is exemplary usage guidance.

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

  • Behavior5/5

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

    With no annotations, the description carries full burden and does so thoroughly. It discloses return contents (subject, body, rfcMessageId), the effect of preferHtml, and a significant behavioral trait: timeouts when scanning large folders, plus the mitigation strategy. This goes well beyond what schema or annotations provide.

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

    Conciseness5/5

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

    The description is well-structured into labeled sections (Use when, Returns, Tip, Do not use when). Every sentence earns its place; it is informative without being verbose. The front-loaded use case makes it easy to scan.

    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 4-param tool with no annotations but with output schema, the description is complete: it covers purpose, usage context, return values, failure modes, and alternatives. The tip about large folders and the rfcMessageId for dedup/threading show deep contextual understanding.

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

    Parameters4/5

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

    Schema coverage is 75% (3 of 4 params have descriptions). The description adds value by explaining why to pass mailbox+account ('required for reliable reads of large folders'), which goes beyond the schema descriptions. For the 'id' param, it restates the pattern (numeric or imap) but doesn't add new semantics, hence not a 5.

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

    Purpose5/5

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

    The description clearly states the tool's function: 'reading the full body of one message whose id you already have'. It specifies the resource (message) and the action (read/get full body), and explicitly distinguishes from siblings via 'Do not use when: you don't yet have an id (use search-messages or list-messages first), or you want the whole conversation (use get-thread)'.

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

    Usage Guidelines5/5

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

    Excellent guidance with explicit 'Use when', 'Do not use when', and a 'Tip' section. It tells the agent exactly when to invoke this tool vs alternatives (search-messages, list-messages, get-thread), and provides a performance tip about supplying mailbox+account for large folders like 'Sent Items' to avoid timeouts.

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

  • Behavior5/5

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

    With no annotations provided, the description fully discloses behavior: it returns a count, handles partial failures with `partial: true` and `failedAccounts`, and distinguishes a total AppleScript failure returning an ERROR from a disguised transport failure. This is rich behavioral context beyond simple tool purpose.

    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 well-organized into three labeled sections: 'Use when', 'Returns', and 'Do not use when'. Every sentence provides useful information with no fluff or repetition, and the structure makes it easy to scan.

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

    Completeness5/5

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

    The description covers the tool's core purpose, edge cases (partial failures, errors), and clearly delineates when not to use it. Given that the output schema is present and the tool is simple, this description fully equips an agent to decide when and how to call it correctly.

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

    Parameters4/5

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

    Schema coverage is 100% (both account and mailbox have descriptions), so the baseline is 3. The description adds meaning by clarifying that the parameters can be used individually or together ('one mailbox and/or account'), which is not explicit in the schema. It also reiterates the INBOX default, reinforcing schema info but adding slight combination semantics.

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

    Purpose5/5

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

    The description states a very specific purpose: returning the number of unread messages, with INBOX as default or scoped to one mailbox and/or account. It explicitly notes what the tool does NOT do ('without listing the messages themselves'), which sharply distinguishes it from sibling tools like list-messages.

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

    Usage Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' sections. It names concrete alternatives (list-messages with unreadOnly, search-messages with isRead=false, get-mail-stats) and clarifies the exact scenarios for which this tool is appropriate.

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

  • Behavior5/5

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

    No annotations exist, so the description fully carries the burden. It discloses an important error behavior: if AppleScript transport fails, it returns an ERROR rather than an empty list, and an empty list always means truly no accounts. This goes beyond basic listing semantics and adds valuable 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?

    Four concise sentences with clear structure: Use when, Returns, error caveat, Do not use when. Every sentence contributes useful information with no fluff.

    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 zero-parameter tool, the description fully covers purpose, usage, error behavior, and exclusions. The output schema likely handles return structure, and the description adds the critical distinction between an error and an empty list, making it complete.

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

    Parameters4/5

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

    The tool has zero parameters, so the baseline is 4 per the rubric. The description adds context about the output (account names and count) and emphasizes passing an 'exact account name' to other tools, but there is no parameter detail to add. It appropriately does not invent unnecessary info.

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

    Purpose5/5

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

    Clearly states it lists configured Mail accounts (like iCloud, Gmail) and the purpose is to get an exact account name for other tools. It explicitly distinguishes from list-mailboxes (folders) and list-messages/search-messages (messages).

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when' and 'Do not use when' sections, including named alternatives (list-mailboxes, list-messages, search-messages). This gives clear context for when to invoke this tool vs siblings.

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

  • Behavior5/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It thoroughly covers edge cases: partial results with `partial: true` and `failedAccounts`, errors for nonexistent accounts (naming existing ones, never empty), and the synthetic 'On My Mac' account. It also explains the return format (canonical paths, counts, total count). This is exemplary 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 well-organized with clear sections ('Use when', 'Returns', 'Do not use when', a note). It is front-loaded with the primary purpose, each sentence provides distinct and useful information, and there is no redundancy. Although longer than typical, every part earns its place given the tool's complexity.

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

    Completeness5/5

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

    The description is complete for the tool's complexity. It explains return values (counts, paths), edge cases (partial results, errors), the synthetic account handling, and usage context. An output schema exists, so detailed return format isn't needed here. An agent has everything required to call this tool correctly and interpret results.

    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 schema describes `account` as 'Account to list mailboxes from' (100% coverage). The description adds meaningful nuance beyond the schema: it specifies that `account: "On My Mac"` lists only On My Mac mailboxes, and an unscoped call includes them. This is valuable parameter-specific behavior not present in the schema, bringing the score above the baseline 3.

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

    Purpose5/5

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

    The description clearly states the tool's purpose: discovering mailbox/folder paths and unread/message counts in an account. It names the specific resource (mailboxes) and the operation (list), and distinguishes it from siblings like list-messages, search-messages, and list-accounts by explicitly stating what it is not for. The context 'before moving messages or searching a specific mailbox' further clarifies its role.

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

    Usage Guidelines5/5

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

    The description provides explicit 'Use when' and 'Do not use when' sections, naming alternative tools (list-messages, search-messages, list-accounts) and the conditions that select them. It also explains the 'On My Mac' special case and when an unscoped call vs. a scoped call is appropriate. This leaves nothing to inference.

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

  • Behavior5/5

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

    With no annotations, the description carries full behavioral disclosure. It warns that send=true sends real email immediately and cannot be unsent, requires explicit user confirmation, and mentions threading headers and draft behavior. This is exceptionally 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?

    The description is well-structured with labeled sections: 'Use when', 'Returns', 'Do not use when', and 'Safety'. It is concise yet information-dense, with every sentence contributing actionable guidance.

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

    Completeness5/5

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

    The description is complete for a tool of this complexity. It covers when to use, alternatives, return value, safety concerns, and parameter behavior, leaving no significant gaps even in the absence of annotations.

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

    Parameters4/5

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

    Schema coverage is 50%, and the description compensates by explaining id as the existing message to reply to, replyAll as replying to all recipients, and send=false as saving a draft. It adds meaning to the parameters beyond the schema, though body semantics are only implicitly covered through the safety note.

    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: replying to an existing message by id while preserving threading headers. It distinguishes from siblings by explicitly naming send-email/create-draft for new messages and forward-message for forwarding.

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

    Usage Guidelines5/5

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

    Provides explicit 'Use when' and 'Do not use when' guidance with named alternative tools. Also explains when to set replyAll and send=false, giving clear decision criteria for usage.

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

  • Behavior5/5

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

    Since no annotations are provided, the description carries full responsibility. It discloses the return value ('counts of how many were marked unread and how many failed'), the failure/refusal behavior for ambiguous ids ('an id that matches in several mailboxes is refused, not guessed'), and the importance of sourceMailbox/sourceAccount for pinning ids. This goes beyond the schema and provides critical runtime 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 compact and well-organized, with clear 'Use when', 'Returns', 'Do not use when', and 'Pass' sections. Every sentence adds either usage guidance, a return detail, or parameter semantics, with no filler. It is front-loaded and scannable.

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

    Completeness5/5

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

    Given a batch tool with 3 parameters and an output schema, the description is complete. It explains when to use, what to expect in the return, how to obtain inputs, and how to disambiguate ids. It even handles edge cases like ambiguous mailboxes. The presence of an output schema reduces the need to describe return structure, but the description still provides the essential counts summary.

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

    Parameters5/5

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

    The schema description coverage is 67%, but the description compensates by explaining the ids parameter's numeric/IMAP format and the purpose of sourceAccount/sourceMailbox. It clarifies that sourceAccount alone pins nothing and that sourceMailbox must be paired with it, and that imap ids ignore the mailbox scope. This adds meaningful semantic context beyond the schema.

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

    Purpose5/5

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

    The description clearly states the verb and resource: 'marking multiple messages (1–100 ids) as unread in one call.' It also distinguishes from siblings by explicitly mentioning when to use mark-as-unread for single messages and batch-mark-as-read for the read counterpart. This is a specific, unambiguous purpose.

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

    Usage Guidelines5/5

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

    The description begins with an explicit 'Use when' condition and provides a 'Do not use when' clause with direct references to alternative tools. It also gives a prerequisite step ('Get the ids from search-messages or list-messages first'), which is valuable guidance for correct usage.

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

  • Behavior5/5

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

    No annotations are provided, so the description bears full responsibility for behavioral disclosure. It warns that the operation moves many real messages, explains that ambiguous ids are refused rather than guessed, describes return counts and failure reasons, and explains the sourceMailbox/sourceAccount scoping semantics.

    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 well-structured with labeled sections (Use when, Returns, Do not use when, Safety) and every sentence adds useful information. It is longer than average but each part earns its place given the complexity and safety considerations.

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

    Completeness5/5

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

    Given there are 5 parameters, no annotations, and the high-stakes mutating nature of the operation, the description provides comprehensive context: when to use, when not to use, prerequisites, return values, safety warnings, and precise parameter semantics. It is sufficient for correct tool invocation.

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

    Parameters5/5

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

    The schema covers only 60% of parameters, but the description significantly compensates. It clarifies the distinction between destination mailbox and sourceMailbox, requires sourceAccount pairing, explains imap: id behavior is ignored for source scoping, and clarifies that ids must be pinned to the source mailbox.

    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 operation: moving multiple messages (1–100 ids) into the same destination mailbox/folder in one call. It explicitly references the tool name's scope and distinguishes it from related tools by exclusion.

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

    Usage Guidelines5/5

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

    Provides explicit when-to-use guidance, concrete when-not-to-use cases with alternative tool names (move-message, batch-delete-messages), and prerequisite advice to verify destination with list-mailboxes and confirm ids with search/list-messages.

    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

apple-mail-mcp MCP server

Copy to your README.md:

Score Badge

apple-mail-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sweetrb/apple-mail-mcp'

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