Skip to main content
Glama
juergenkoller-software

PDF Content Search MCP

PDF Content Search MCP Server

Swift Platform License MCP juergenkoller-software/pdf-content-search-mcp MCP server

Full-text PDF search + OCR for Claude, Cursor, and any MCP client.

This is the official Model Context Protocol bridge for PDF Content Search — a native macOS app that indexes thousands of PDFs (including scanned ones via Apple Vision OCR) and finds anything in under a second.

You need the PDF Content Search app installed and running. This MCP server is a stdio→HTTP bridge — the index, OCR engine, and search live in the app. Get PDF Content Search at store.juergenkoller.software/apps/pdf-content-search.


What you can do

"Claude, find every invoice from Telekom in 2024 across all my PDFs and list amount + date."

"Cursor, search 'data processing agreement' across my contracts folder, return the matching PDF + page number."

The app exposes search, filter, OCR, indexing, and document-metadata tools through MCP. Search results include page numbers, highlighted snippets, and bounding-box coordinates from OCR. Full tool list is announced by the server on tools/list after initialize.


Related MCP server: FreezeText MCP

Installation

Prerequisites

  1. macOS 12 (Monterey) or later

  2. PDF Content Search app installed and runningget it here (one-time purchase €89.99, 30-day free trial, includes free iOS + Android scanner companion apps)

  3. Swift 5.9+ (Xcode 15+) if building from source

Build from source

git clone https://github.com/juergenkoller-software/pdf-content-search-mcp.git
cd pdf-content-search-mcp
swift build -c release
# Binary: .build/release/pdf-content-search-mcp

Universal binary (for shipping inside the app bundle):

swift build -c release --arch arm64 --arch x86_64

Already inside the app

If you have PDF Content Search installed, the bridge ships inside the app bundle at Contents/Resources/pdf-content-search-mcp. Use the "Set up Claude Desktop" button in the app to auto-configure Claude Desktop with the right path and token — that's the recommended path for end users.

This repo is the source code for that bundled bridge, kept open so you can audit it, fork it, or run it under your own sandbox.


Configuration

Claude Desktop

{
  "mcpServers": {
    "pdf-content-search": {
      "command": "/path/to/pdf-content-search-mcp",
      "env": {
        "PDF_CS_TOKEN": "your-token-here",
        "PDF_CS_PORT": "44477"
      }
    }
  }
}

Get PDF_CS_TOKEN from PDF Content Search → Settings → API Server, or use the in-app "Set up Claude Desktop" button.

Claude Code

claude mcp add pdf-content-search /path/to/pdf-content-search-mcp \
  --env PDF_CS_PORT=44477 \
  --env PDF_CS_TOKEN=your-token-here

Cursor / other MCP clients

Same pattern — stdio MCP server.


Environment variables

Variable

Default

Description

PDF_CS_TOKEN

(none)

Bearer token matching the app's API Server token (required)

PDF_CS_PORT

44477

Port of the app's API server

PDF_CS_HOST

127.0.0.1

Host to reach the app


Protocol behavior

  • Newline-delimited JSON on stdin/stdout (MCP stdio transport).

  • Each line is POSTed to the app's /mcp endpoint verbatim.

  • The first response's Mcp-Session-Id header is cached and sent with every subsequent request, so session state survives across messages.

  • Notifications (requests without id) expect HTTP 202 and produce no stdout.

  • Transport errors are turned into JSON-RPC error responses (code -32000 "Cannot reach PDF Content Search") so the client surfaces a meaningful message instead of hanging.

  • HTTP 401 → JSON-RPC error -32001 with a hint to rerun the setup.

  • HTTP 404 on an established session drops the cached ID and tells the client to re-initialize.


How it works

┌────────────────┐  JSON-RPC stdio   ┌────────────────┐  HTTP+Bearer   ┌────────────────────┐
│  Claude/Cursor │ ───────────────►  │ pdfcs-mcp      │ ─────────────► │ PDF Content Search │
│  (MCP client)  │ ◄───────────────  │   (this repo)  │ ◄───────────── │  (port 44477)      │
└────────────────┘                   └────────────────┘                └────────────────────┘

PDF Content Search owns the index (full-text + OCR + extracted metadata), the AI-naming pipeline, the iOS/Android sync, and the search engine. This bridge keeps the stdio MCP transport open-source so you can audit the wire format independently.


PDF Content Search replaces complex folder structures with lightning-fast full-text search. Highlights:

  • One-time purchase — €89.99, no subscription

  • Full-text search across thousands of PDFs in under a second

  • OCR text recognition — Apple Vision Framework, makes scans searchable

  • AI file naming — phone photo of invoice becomes 250401 Invoice Telekom.pdf

  • Free companion apps — iOS and Android scanner apps included

  • Encrypted sync to Mac

  • Advanced filters — date, category, sender, amount; boolean operators; wildcards

  • Spotlight + iCloud Drive integration

  • MCP server (this repo) + REST API

  • Made for offices, law firms, accountants — anyone with lots of documents

Get PDF Content Search at store.juergenkoller.software


License

MIT — see LICENSE. Bridge open source; the PDF Content Search app is commercial.

Issues & support

Built by Juergen Koller Software GmbH.

Available Tools

84 tools
activate_licenseA

Activate a license using license_key. Sensitive. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to execute this irreversible/sensitive action.
license_keyYesLicense key to activate.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Sensitive' and 'Requires confirm=true', adding some context about the irreversible nature. However, it lacks details on side effects, success/failure outcomes, or required permissions.

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

Conciseness5/5

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

The description is extremely concise with two sentences that are front-loaded with the action. Every word serves a purpose, no filler.

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

Completeness4/5

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

For a simple activation tool with only two parameters and no output schema, the description provides enough context to use the tool correctly. It could be improved by mentioning expected outcomes or errors, but it is sufficient for a low-complexity tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description adds minimal value beyond saying 'Sensitive' and restating the require requirement. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Activate' and the resource 'license', making the tool's purpose unambiguous. It distinguishes itself from sibling tools like 'deactivate_license' and 'refresh_license'.

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

Usage Guidelines4/5

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

The description explicitly notes that the action is sensitive and requires confirm=true, providing clear guidance on when and how to use the tool. However, it does not mention any alternatives or when not to use it.

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

add_folderA

Add a folder to the indexed search folders by absolute path. The path must exist and be a directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the folder to index.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It discloses that the path must be an existing directory and that the folder is added to indexed search folders, but does not mention behavior on duplicates, error handling, or side effects like triggering reindexing.

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

Conciseness5/5

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

Two concise sentences with no wasted words. The key information is front-loaded and efficiently communicated.

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

Completeness3/5

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

Given no output schema and simple operation, the description covers the primary purpose and precondition. However, it lacks details about return value, status on success/failure, and behavior for edge cases (e.g., already indexed). So it is minimally adequate but leaves 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 100% with description 'Absolute path to the folder to index.' The tool description adds the constraint 'The path must exist and be a directory,' which provides additional semantic 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 verb 'Add', the resource 'folder to the indexed search folders', and the condition 'by absolute path'. It distinguishes from sibling tool 'delete_folder'.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. Only includes a precondition (path must exist and be a directory) but does not discuss scenarios like avoiding adding already-indexed folders or alternative indexing tools.

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

bulk_delete_documentsA

Delete multiple documents (document_ids) from the index at once. Destructive. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to execute this irreversible/sensitive action.
document_idsYesList of document IDs to delete.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. Only states 'Destructive' and the confirm requirement, omitting details such as irreversibility, scope of impact (e.g., index-wide), authentication needs, or error handling.

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

Conciseness5/5

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

The description is extremely concise with three short sentences, each adding clear value. It is front-loaded with the core action and critical constraints, wasting no words.

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

Completeness3/5

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

For a simple two-parameter tool with no output schema, the description covers the essential purpose and constraint. However, it lacks information about return values, partial failure behavior, or error conditions, which would be helpful for a bulk destructive action.

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

Parameters3/5

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

Schema coverage is 100% with well-described parameters. The description adds minimal value by repeating 'confirm=true' and implying 'document_ids' via 'multiple documents'. No additional semantic context beyond schema is provided.

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

Purpose5/5

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

The description clearly states the verb 'Delete', the resource 'multiple documents', and the scope 'from the index'. It distinguishes this tool from the singular 'delete_document' sibling by specifying bulk operation.

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

Usage Guidelines3/5

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

The description mentions 'Destructive' and 'Requires confirm=true', indicating when to use, but lacks explicit guidance on when not to use or alternatives like 'delete_document'. It provides a prerequisite but no comparative context.

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

cancel_pending_mail_cloud_jobsA

Cancel all 'pending' Office-attachment Cloud-Jobs (set status='notSupported', reason='user cancelled').

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that it cancels ALL pending jobs and sets a specific status and reason, but does not mention potential side effects, irreversibility, or permission requirements. It provides the core behavior but lacks depth.

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

Conciseness5/5

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

A single sentence that directly states the action, target, and effect with no extraneous words. Perfectly concise and front-loaded.

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

Completeness4/5

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

Given no parameters and no output schema, the description adequately covers the tool's action. However, it assumes domain knowledge of 'Office-attachment Cloud-Jobs' which could be clarified. Still, it is sufficient for most use cases.

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

Parameters4/5

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

The input schema has zero parameters, so baseline is 4. The description adds no parameter details (unneeded) and does not mislead. It correctly implies no configuration is required.

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 (cancel), the specific resource (pending Office-attachment Cloud-Jobs), and the exact state change (set status='notSupported', reason='user cancelled'), making it specific and distinct from sibling tools like list or retry.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as retry_failed_mail_cloud_jobs or retry_incomplete_mails. The description does not provide context for when cancellation is appropriate or what prerequisites exist.

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

cleanup_stale_mail_metaC

GC stale records: 'empty' with attemptCount>=10 older than 30 days, 'failed' older than 90 days.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It states conditions for records but does not describe the exact operation (e.g., deletion), whether it is destructive, idempotent, or synchronous. The effect on the system is unclear, which is a significant omission for a cleanup tool.

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

Conciseness4/5

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

The description is very concise—one line with no wasted words. For a tool with no parameters, this is efficient. However, the informal phrasing ('GC stale records') is less structured than ideal.

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

Completeness2/5

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

Given no annotations, no output schema, and no parameters, the description should fully explain the tool's function. It covers the selection criteria but omits the action, side effects, and safety considerations. The tool likely has destructive effects, yet the description does not warn or clarify, making it incomplete.

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

Parameters4/5

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

The input schema has zero parameters, so schema coverage is 100%. The description does not need to add parameter information. It implicitly defines the cleanup criteria, which suffices. Baseline 4 applies.

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

Purpose3/5

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

The description specifies the conditions for records to be cleaned ('empty' with attemptCount>=10 older than 30 days, 'failed' older than 90 days), which gives clear criteria. However, it uses informal language ('GC stale records') and does not explicitly state the action performed (e.g., delete, archive). The purpose is somewhat clear but lacks a precise verb.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. There is no mention of prerequisites, frequency, or whether it should be run manually or automatically. Given many sibling tools, the lack of usage context is a gap.

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

clear_mail_indexA

Wipe MailFtsSqlite rows and reset the indexer cursor to 0. Next index run will re-read from scratch.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Discloses destructive behavior (wiping data) and future impact (next index run re-reads from scratch). With no annotations, this carries the full burden and does well.

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

Conciseness5/5

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

Two short, front-loaded sentences with no waste. Every word adds value.

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

Completeness4/5

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

For a simple no-param destructive tool, the description provides key behavioral context (wipe + future index run). Could mention permission requirements or if it affects all mail data, but still fairly 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?

No parameters exist, so baseline 4 applies. Description does not need to add parameter info, but it does mention the resource being acted upon.

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: wiping MailFtsSqlite rows and resetting the indexer cursor to 0. It uses specific verbs and resources, distinguishing it from siblings like reindex_apple_mail.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., reindex_apple_mail, cancel_pending_mail_cloud_jobs). Missing context on prerequisites, safety, or typical scenarios.

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

cloud_syncA

Control the cloud service. Pass enabled to toggle it (requires accept_conditions=true once), or omit to run a cleanup of completed items.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNoEnable or disable the cloud service.
accept_conditionsNoAccept the cloud-service conditions (required before enabling).

TDQS

A3.9/5.0
Behavior3/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 two distinct behaviors (toggle vs cleanup) and the condition requirement. However, it lacks detail on side effects (e.g., what happens if accept_conditions is false) or return value.

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

Conciseness5/5

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

The description is a single sentence that covers both use cases without redundancy. Every word adds value, and it is front-loaded with the main 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?

Given the tool has only 2 parameters and no output schema, the description adequately explains the two operational modes. It lacks details like whether cleanup is destructive or if there are status responses, but overall sufficient for its simplicity.

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%, but the description adds valuable context: enabled toggles the service, accept_conditions is required once for enabling. This goes beyond the schema descriptions which only state basic purpose.

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

Purpose4/5

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

The description clearly states that the tool controls the cloud service, specifically toggling enable/disable (with conditions) or running cleanup. It distinguishes from sibling tools like get_cloud_status or list_cloud_items by describing actionable behaviors.

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

Usage Guidelines4/5

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

The description explains when to pass enabled (to toggle) versus omit (to run cleanup) and notes the prerequisite accept_conditions=true for enabling. It does not explicitly exclude other scenarios but provides clear guidance for its primary uses.

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

confirm_mobile_pairingA

Confirm a mobile-device pairing using the 9-digit code. Sensitive. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes9-digit pairing code from the mobile device.
confirmYesMust be true to execute this irreversible/sensitive action.
folder_pathNoOptional path of the shared folder to pair. Omit to use the first shared folder.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It describes the action as 'Sensitive' and notes the requirement for 'confirm=true', which implies irreversibility. However, it lacks details on consequences, success/failure outcomes, or state changes, earning a mid-range score.

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

Conciseness4/5

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

The description is very brief, consisting of one sentence plus a fragment. It is front-loaded with the purpose, but the phrasing 'Sensitive. Requires confirm=true.' is slightly awkward. Overall, it is efficient with minimal waste.

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

Completeness4/5

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

For a simple tool with 3 parameters and no output schema, the description covers the core purpose, sensitivity, and the confirm requirement. It does not mention success/failure feedback or error handling, but given the low complexity, it is mostly complete.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds 'using the 9-digit code' which reiterates the 'code' parameter, but does not provide significant new meaning beyond the schema descriptions for 'confirm' and 'folder_path'. It does not compensate for the lack of annotation coverage.

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

Purpose5/5

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

The description clearly states the verb 'confirm' and the resource 'mobile-device pairing', specifying the use of a 9-digit code. It effectively distinguishes from sibling tools like 'list_mobile_devices' and 'mobile_sync' which handle other aspects of mobile device management.

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

Usage Guidelines4/5

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

The description indicates this is a sensitive action requiring 'confirm=true', providing clear context for when to use the tool. It does not explicitly mention when not to use it or suggest alternatives, but given the sibling list, no other tool serves this specific purpose.

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

deactivate_licenseA

Deactivate the current license. Sensitive. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to execute this irreversible/sensitive action.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool is 'Sensitive' and requires confirmation, implying seriousness. However, it does not detail what deactivation entails (e.g., loss of features, need for reactivation) or any side effects, leaving some ambiguity.

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

Conciseness5/5

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

The description is extremely concise, consisting of three short phrases: 'Deactivate the current license. Sensitive. Requires confirm=true.' Every sentence serves a purpose, with no wasted words. It is front-loaded and easy to parse.

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

Completeness4/5

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

For a simple tool with one well-documented parameter and no output schema, the description covers the core action and sensitivity. However, it lacks context on the outcome (e.g., will services stop immediately? Can it be undone?) and does not mention the sibling tool for reactivation. Slightly more detail would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100% with the parameter 'confirm' already documented as 'Must be true to execute this irreversible/sensitive action.' The tool description redundantly echoes 'Requires confirm=true' and adds 'Sensitive,' which adds minimal value beyond the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's action: 'Deactivate the current license.' It uses a specific verb and resource, and the phrase 'Sensitive' distinguishes it from sibling tools like activate_license or get_license_status, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description mentions 'Sensitive' and 'Requires confirm=true,' which implies it is a critical action requiring deliberation. However, it does not explicitly state when to use this tool versus alternatives like activate_license or refresh_license, or provide guidance on prerequisites or consequences.

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

delete_documentA

Delete a single document (by document_id) from the index. Destructive. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to execute this irreversible/sensitive action.
document_idYesDocument ID to delete.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It declares 'Destructive' and demands confirm=true, disclosing the irreversible nature. However, it does not mention other side effects or reversibility.

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

Conciseness5/5

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

Two sentences, front-loaded, no unnecessary words. Every sentence earns its place.

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

Completeness4/5

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

Given the tool's simplicity (2 params, no output schema), the description sufficiently covers purpose, constraints, and behavior. It could mention return values but is not critical.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds 'by document_id' and 'Destructive', slightly reinforcing the parameter semantics but not providing significant new information beyond the schema.

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

Purpose5/5

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

The description clearly states the action (Delete), resource (a single document by document_id), and context (from the index). It distinguishes itself from sibling tools like bulk_delete_documents by specifying 'single document'.

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

Usage Guidelines4/5

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

The description explicitly requires confirm=true, providing a clear usage guideline. It does not explicitly state when not to use or alternatives, but the context of single vs bulk delete is implied.

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

delete_folderA

Remove a folder (by folder_id) from the index. Destructive. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to execute this irreversible/sensitive action.
folder_idYesFolder ID to remove.

TDQS

A4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It clearly states the action is destructive and irreversible, and that confirm=true is required. This discloses the key behavioral trait beyond the schema, though it does not detail effects on child documents or error handling.

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

Conciseness5/5

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

The description is extremely concise, with one sentence plus a clarifying phrase. It is front-loaded with the verb and resource, and every word adds value with no redundancy.

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

Completeness4/5

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

Given the tool has only 2 parameters, no output schema, and is a straightforward destructive operation, the description provides sufficient context: what it does, what is needed, and the destructive nature. It lacks details on success/failure behavior but is adequate for a simple tool.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented. The description adds the context that confirm ensures the destructive action, but does not provide additional meaning beyond the schema. Baseline score is appropriate.

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

Purpose5/5

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

The description clearly states the action: removing a folder by ID from the index. It uses a specific verb ('remove') and resource ('folder'), and distinguishes from siblings like add_folder or list_folders by noting it is destructive and requires confirmation.

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

Usage Guidelines3/5

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

The description implies usage for deleting folders and requires confirm=true but does not explicitly state when to avoid using it or mention alternatives. Since siblings include add_folder and rescan_folder, some guidance on not using this for folders with active processing would be helpful.

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

disable_apple_mailA

Disable Apple Mail indexing and remove the sidebar item. Index is kept on disk.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
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 that indexing is disabled, the sidebar item is removed, and the index remains on disk. This is adequate for a simple tool, though it doesn't mention reversibility or prerequisites.

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 short sentences, front-loading the action. Every word adds value with no redundancy.

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

Completeness4/5

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

Given no parameters, no output schema, and no annotations, the description is complete enough. It explains both what is done and what is preserved (index on disk), which is sufficient for agent decision-making.

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 are zero parameters, so the description naturally doesn't need to add parameter details. Schema coverage is 100%, and the baseline for no params is 4, which is appropriate.

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

Purpose5/5

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

The description clearly states it disables Apple Mail indexing and removes the sidebar item, with the note that the index is kept on disk. This is specific and distinguishes it from siblings like clear_mail_index or reindex_apple_mail.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. It implies usage for temporarily disabling without deleting the index, but lacks explicit guidance compared to siblings like clear_mail_index or reindex_apple_mail.

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

export_documentsB

Export OCR text and metadata for multiple documents at once. Useful for bulk text extraction.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idsYesList of document IDs (max 100)
include_metadataNoInclude file metadata (default true)
include_ocr_textNoInclude OCR text per page (default true)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; description only states what it does without disclosing behavioral traits like whether it's read-only, maximum batch size (though in schema), or error handling.

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

Conciseness5/5

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

Two sentences, no unnecessary words, front-loaded with key verb and resource.

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

Completeness2/5

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

Given no annotations and no output schema, the description lacks behavioral details and output format, leaving gaps for a bulk operation.

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

Parameters3/5

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

Schema coverage is 100%, so description does not add extra meaning beyond the schema; baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool exports OCR text and metadata for multiple documents, which is specific and distinguishes from single-document tools like get_document_text.

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

Usage Guidelines3/5

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

It says 'Useful for bulk text extraction', implying usage for batches, but does not explicitly mention when not to use or alternatives like get_document_text for single documents.

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

get_app_statusA

Get application health status, version, uptime, and active port.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It accurately describes a read-only operation returning health status, version, uptime, and active port. No side effects or additional behavioral traits are needed for this simple status check.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys all necessary information without any wasted words.

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

Completeness4/5

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

Given no parameters and no output schema, the description provides sufficient context by listing the returned fields (health status, version, uptime, active port). It could mention output format but is adequate for a simple 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?

No parameters exist, so schema coverage is 100%. Baseline score of 4 is appropriate as the description adds no parameter info beyond the schema, but none is needed.

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

Purpose5/5

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

The description clearly states the tool retrieves application health status, version, uptime, and active port. It uses a specific verb and resource, distinguishing it from sibling 'get_' status tools like get_cloud_status and get_license_status.

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

Usage Guidelines3/5

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

The description implies the tool is for general health checks but does not provide explicit guidance on when to use it versus alternatives like get_cloud_status or get_license_status. No when-not-to-use or exclusion criteria are given.

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

get_cloud_statusA

Get cloud-service status: enabled flag, conditions_accepted, number of scanned folders and item counts by state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries behavioral disclosure. The verb 'Get' and listed return values imply a read-only operation with no side effects. While not explicit, the description does not contradict safe usage.

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

Conciseness5/5

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

Single sentence is concise, front-loads the purpose, and lists specific outputs without any fluff.

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

Completeness4/5

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

Given no output schema and zero parameters, the description adequately covers what the tool returns. It could mention error handling or lack of side effects, but for a simple status check, it is sufficient.

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

Parameters4/5

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

No parameters exist, so schema coverage is effectively 100%. The baseline for zero-parameter tools is 4, and the description adds no confusion.

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 cloud-service status and lists specific attributes (enabled flag, conditions accepted, folder count, item counts by state). This distinguishes it from sibling tools like get_app_status or get_license_status.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The name and description imply cloud-service context, but there is no statement of exclusions or alternatives, leaving the agent to infer from sibling names.

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

get_document_metadataA

Get metadata for a document: file name, path, page count, file size, processing state, and folder reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYesDocument ID (from search results)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It indicates a read operation but does not disclose potential error handling, permissions needed, or return structure. The listed fields provide some transparency but could be more comprehensive.

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

Conciseness5/5

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

The description is a single sentence that immediately conveys the tool's purpose and key outputs, with no unnecessary words. It is well-structured for quick comprehension.

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

Completeness4/5

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

Given the simple input (one parameter) and no output schema, the description covers the essential aspects. It could mention that the tool is safe to call and idempotent, but overall it is relatively complete for its purpose.

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

Parameters3/5

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

Schema coverage is 100% and the description does not add extra meaning beyond the schema's description of document_id. Since the schema already explains the parameter, the description adds minimal value.

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

Purpose5/5

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

The description clearly states the tool retrieves metadata for a document and lists specific fields (file name, path, page count, file size, processing state, folder reference). It distinguishes from sibling tools like get_document_text or get_document_thumbnail, which retrieve different content.

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

Usage Guidelines3/5

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

The description implies usage when metadata is needed but does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it or provide any prerequisites.

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

get_document_ocr_rectsA

Get OCR bounding boxes for a document: per-rect page index, recognised text and x/y/width/height in normalized page coordinates. Optionally filter by page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional: limit to a single page index.
document_idYesDocument ID.

TDQS

A4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It explains that returns per-rect page index, recognized text, and normalized coordinates, implying read-only behavior. No side effects or limitations are mentioned, but the description is adequate for a simple retrieval 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?

Extremely concise, two sentences front-loaded with core purpose and optional filter. No unnecessary words or repetition.

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

Completeness4/5

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

The description covers the essential purpose and optional filter, and the return format is hinted (per-rect data). For a simple tool with no output schema, it is mostly complete, though missing details on edge cases (e.g., missing OCR).

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds 'Optionally filter by page,' which rephrases the schema's description for the page parameter but does not add significant new semantics beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool retrieves OCR bounding boxes with per-rect details (page index, text, coordinates) and optional page filtering, distinguishing it from siblings like get_document_text (text only) and get_document_metadata (metadata only).

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

Usage Guidelines3/5

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

The description mentions optional page filtering but does not explicitly state when to use this tool over alternatives (e.g., get_document_text). The purpose is clear enough for an agent to infer usage, but no direct guidance is given.

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

get_document_textA

Get the full OCR text content of a document. Returns text organized by page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoOptional: specific page number (1-based). Omit for all pages.
document_idYesDocument ID (from search results)

TDQS

A3.5/5.0
Behavior3/5

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

Description notes text is organized by page, but lacks details on return format, error handling, or limitations. With no annotations, it's minimally adequate.

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

Conciseness5/5

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

Two concise sentences, front-loaded with key action and result. No unnecessary information.

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

Completeness3/5

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

With no output schema, description could more clearly specify return format (e.g., plain text string with page separators). Current 'text organized by page' is vague but not misleading.

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

Parameters3/5

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

Schema coverage is 100%, so baseline applies. Description adds no extra meaning beyond schema descriptions; 'organized by page' relates to page parameter but no further enrichment.

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

Purpose5/5

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

Description clearly states it retrieves full OCR text content, distinguishing it from metadata or OCR rectangle tools. The verb 'get' and resource 'document text' are specific.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool over siblings like get_document_metadata or get_document_ocr_rects. Usage must be inferred from the name and description.

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

get_document_thumbnailA

Get a PNG thumbnail of a specific document page. Returns base64-encoded image data.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based, default 1)
document_idYesDocument ID

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses that the tool returns base64-encoded image data, but with no annotations, it fails to mention read-only nature or any other behavioral traits.

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

Conciseness5/5

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

Two concise sentences front-load the action and return format, with no unnecessary words.

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

Completeness3/5

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

For a simple tool with 2 parameters and no output schema, the description is adequate but could mention that it is a read operation or performance implications.

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 baseline is 3; the description adds no extra meaning beyond 'specific document page' which is already implied by the 'page' parameter 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 'get' and the resource 'PNG thumbnail of a specific document page', which is distinct from sibling tools that retrieve full documents or other data.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., get_document_text, get_document_metadata), nor when not to use it.

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

get_folder_processing_statusA

Get the OCR processing status of a folder: whether it is currently processing plus counts for processing/pending/completed/failed.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idYesFolder ID (from list_folders).

TDQS

A3.8/5.0
Behavior4/5

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

The description discloses the return values: whether currently processing and counts for processing/pending/completed/failed. With no annotations, this is sufficient for a read-only operation; it does not hide any behavioral traits.

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

Conciseness5/5

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

The description is a single sentence that efficiently communicates the tool's purpose and output, with no unnecessary words. It is front-loaded with the verb and resource.

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

Completeness4/5

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

The description fully explains the return data (processing flag and four counts) without an output schema. It is adequate for the tool's simplicity and complements the schema well. Could specify data types but still complete enough.

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

Parameters3/5

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

The single parameter folder_id is described in the schema as 'Folder ID (from list_folders).' The description adds no additional meaning beyond the schema, so baseline 3 is appropriate given 100% schema coverage.

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

Purpose4/5

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

The description clearly states the action 'get' and the resource 'OCR processing status of a folder', specifying the returned data (processing flag and counts). It distinguishes from siblings like get_processing_status (likely global) and get_folder_stats (different stats), though not explicit.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving folder-level processing status, but it does not explicitly state when to use it over similar tools like get_processing_status or get_folder_stats, nor does it provide when-not-to-use guidance.

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

get_folder_statsA

Get aggregate stats for a folder: total documents, total pages and a breakdown by processing state.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idYesFolder ID (from list_folders).

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries burden. It discloses the returned data but doesn't mention side effects or permissions. As a read operation, this is acceptable but could 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?

Single, well-structured sentence that front-loads the action ('Get aggregate stats') and then details. No wasted words.

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

Completeness5/5

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

Given the simplicity (1 param, no output schema, no annotations), the description fully explains what the tool does and what it returns. No gaps.

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

Parameters4/5

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

Only one parameter (folder_id) with description 'Folder ID (from list_folders).' Schema covers it fully; the description adds helpful context on source, which is valuable beyond schema.

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

Purpose5/5

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

Description clearly states the tool returns aggregate stats (total documents, pages, breakdown by processing state) for a folder. It distinguishes itself from siblings like list_folder_contents or get_document_metadata.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance. Usage is implied by the description; it doesn't mention alternatives like get_folder_processing_status, but the purpose makes it clear.

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

get_license_statusA

Get current license status: state (active/trial/grace/inactive/blocked), entitlement kind, expiration, days left, provider source, last sync date, and any issues.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so the description carries the full burden. It discloses the returned fields but does not explicitly state that the operation is safe and idempotent. Still, it provides good 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?

Single sentence with a colon and list. No unnecessary words, efficiently conveys all key 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?

No output schema, but the description lists return fields. A minor gap is that it doesn't mention prerequisites or side effects, but for a simple getter with no params, it is sufficiently 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?

There are no parameters, so the description adds value by enumerating the returned fields, which is more than the empty schema provides.

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

Purpose5/5

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

The description clearly states the action (Get) and the resource (license status). It lists specific fields returned, distinguishing it from siblings like activate_license or deactivate_license.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives are provided. However, the sibling list implies this is a read-only status check, and the description is clear enough for basic usage.

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

get_mail_attachmentA

Fetch a single attachment of an indexed mail by name. Returns base64 by default; for large attachments pass save_to_path to write the file to disk instead of returning base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAttachment file name as listed by list_mail_attachments.
message_idYesRFC message-id (external_id) of the mail.
save_to_pathNoOptional absolute path to write the file to. Recommended for large attachments to avoid huge base64 payloads.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, but the description discloses default base64 return and optional disk write, providing adequate behavioral transparency for a fetch 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?

Two sentences, front-loaded with purpose, no wasted words. Efficient and clear.

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 no output schema, it sufficiently describes return format and condition for alternative behavior. Complete for a simple fetch operation.

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 has 100% coverage; description adds value by explaining save_to_path is for large attachments to avoid huge base64, beyond what schema provides.

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

Purpose5/5

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

The description clearly states it fetches a single attachment by name, and distinguishes from sibling tools like list_mail_attachments which list attachments.

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

Usage Guidelines4/5

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

It indicates when to use save_to_path for large attachments, but does not explicitly state when not to use this tool or mention alternatives. Context is implied.

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

get_mail_by_rowidB

Peek at an indexed mail by its MailFtsSqlite rowid. Returns subject/sender/date/snippet for that single row.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowidYesMailFtsSqlite rowid of the mail.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description only implies a read operation via 'peek' but doesn't disclose permissions, error behavior, or whether it affects state. Limited 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?

Two sentences, front-loaded with key information, no wasted words.

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

Completeness3/5

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

Adequate for a simple tool but missing return value format, error handling, and guidance on rowid validity. Could be more complete given no output schema.

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

Parameters3/5

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

Schema coverage is 100% and the description adds no new meaning beyond 'by its MailFtsSqlite rowid'. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool peeks at an indexed mail by rowid and returns specific fields. It distinguishes from siblings by specifying the lookup method, but doesn't explicitly differentiate from other mail retrieval tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like get_mail_detail or get_mail_recent. Missing context for appropriate usage scenarios.

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

get_mail_detailA

Full detail of an indexed mail by external-id (RFC message-id): header fields, mailbox, attachment list and indexed body/attachment text.

ParametersJSON Schema
NameRequiredDescriptionDefault
external_idYesRFC message-id of the mail (external_id from get_mail_recent).

TDQS

A3.8/5.0
Behavior2/5

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

Annotations are absent, so the description must cover behavioral traits. It mentions 'indexed mail' but does not discuss side effects (likely none), error conditions, authorization needs, or what happens if the mail is not indexed. This lack of transparency leaves significant gaps 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 a single, well-structured sentence that front-loads the purpose and lists output components without extra words. Every part earns its place.

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

Completeness4/5

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

Given the tool's simplicity (1 parameter, no output schema), the description adequately conveys what the tool returns (header fields, mailbox, attachment list, indexed body/attachment text). It does not detail output structure, but the listed components are sufficient for an agent to understand the scope of information returned.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by specifying that 'external_id' is an RFC message-id and providing its source ('external_id from get_mail_recent'), which aids in correct usage beyond the schema's type definition.

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

Purpose5/5

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

The description clearly states the verb 'get' and resource 'mail detail', listing specific fields included (header fields, mailbox, attachment list, indexed body/attachment text). It distinguishes from siblings like 'get_mail_recent' by specifying the identifier (external-id).

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

Usage Guidelines3/5

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

The description implies use when needing full mail details, but does not explicitly specify when to use this tool versus alternatives like 'list_mail_attachments' or 'get_mail_by_rowid'. The reference to 'get_mail_recent' provides some guidance, but no exclusion criteria or prerequisites are given.

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

get_mail_full_index_statusA

Counters across all mailFtsMeta rows: success, empty, failed, pending. Use to verify completeness of Apple Mail index.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It discloses what counters are returned and that it scans all rows. However, it does not mention that the operation is read-only, side effects, rate limits, or response format. The name implies read but not explicitly.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the key information: what counters are and across what. It is concise with no unnecessary words.

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

Completeness4/5

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

Given the tool has no parameters and no output schema, the description captures the essential purpose and output. It is slightly lacking in explaining the exact format of the response or how to interpret the counters, but sufficient for a simple status tool. Could be enhanced with an example or note about the data source.

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 are no parameters, so the description's job is to explain the tool's purpose and output. It does so by listing the counters and the use case. Since schema coverage is 100% (empty schema), the description adds value beyond the schema. Baseline 4 is appropriate.

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

Purpose4/5

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

The description clearly states the tool retrieves counters (success, empty, failed, pending) across all mailFtsMeta rows, and its purpose is to verify completeness of the Apple Mail index. The verb 'get' and resource 'full index status' are specific. However, it does not explicitly differentiate from the sibling tool 'get_mail_index_status', which might be a subset, leaving some ambiguity.

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

Usage Guidelines4/5

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

The description includes a usage hint: 'Use to verify completeness of Apple Mail index.' This provides clear context for when to use the tool. However, it does not mention when not to use it or suggest alternative tools (e.g., 'get_mail_index_status' for partial status).

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

get_mail_index_statusB

Returns Apple Mail indexer status: enabled flag, is_indexing, indexed_count, last_seen_rowid, envelope_index_path/readable, MailFtsSqlite db path.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, description lists return fields but does not explicitly state read-only or non-destructive nature. Implicitly a getter, but could be more transparent 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.

Conciseness4/5

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

Single sentence efficiently listing key fields. No wasted words, though slight improvement possible with bullet points.

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

Completeness3/5

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

Given no output schema and no annotations, description lists return fields but omits types or formats. Adequate for a simple status tool but could be more precise.

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

Parameters4/5

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

No parameters exist, so schema coverage is 100%. Description adds value by explaining return fields, which the schema does not cover.

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

Purpose4/5

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

Description clearly states it returns Apple Mail indexer status and lists specific fields. It distinguishes from most siblings but not from get_mail_full_index_status, which may overlap.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_mail_full_index_status or get_mail_detail. No prerequisites or context for invocation.

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

get_mail_mailboxesA

Returns mailbox-rowid + URL pairs from the Apple Mail Envelope Index for account-filter setup.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of transparency. It describes the return data but does not disclose behavioral traits like whether it is read-only, requires network, or has side effects. For a simple get operation, the lack of explicit mention of read-only behavior is a minor gap.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the main action and specifies the return value. Every word is informative, with no redundancy.

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

Completeness4/5

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

Given no output schema, the description explains the return value (mailbox-rowid and URL pairs). It lacks details on the exact structure (e.g., array of objects) and error conditions, but for a zero-parameter tool, it is mostly 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?

There are no parameters, so schema coverage is 100% trivially. The description adds value by specifying the return format (rowid+URL pairs) and context (account-filter setup), which goes beyond the empty schema. Baseline for no parameters is 4, and the description meets it.

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

Purpose5/5

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

The description clearly states the tool returns 'mailbox-rowid + URL pairs' from a specific source (Apple Mail Envelope Index) for a specific use case ('account-filter setup'). This distinguishes it from sibling tools like get_mail_by_rowid or get_mail_detail.

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

Usage Guidelines4/5

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

The description mentions the intended usage context ('for account-filter setup'), providing clear guidance on when to use it. However, it does not explicitly state when not to use it or mention alternatives.

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

get_mail_message_metadataA

Read header and mailbox metadata for an Apple Mail message by RFC message-id. Requires Apple Mail indexing to be enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesRFC 2822 message-id, with or without angle brackets

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Implies a read-only operation but does not confirm lack of side effects or specify what exactly is returned (e.g., which headers, mailbox data). Could be more transparent.

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

Conciseness5/5

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

Two concise sentences: first states action and target, second states prerequisite. No fluff, front-loaded, efficient.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, description is adequate. However, it could be more complete by listing types of metadata returned (e.g., subject, date, flags) or indicating the return is structured. Prerequisite is helpful.

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

Parameters3/5

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

Single parameter message_id is fully described in the input schema (RFC 2822 with/without angle brackets). Tool description rephrases this but adds no new semantic value beyond what schema already provides.

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

Purpose5/5

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

Description clearly states the action (read), resource (header and mailbox metadata), and method (by RFC message-id). It distinguishes from sibling tools like get_mail_detail (which may return full message) and get_mail_attachment.

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

Usage Guidelines3/5

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

Mentions a prerequisite (Apple Mail indexing required) but does not explicitly state when to use this tool over alternatives like get_mail_by_rowid or get_mail_detail. No when-not-to-use guidance.

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

get_mail_recentA

Returns the most recently indexed mails from MailFtsSqlite with subject/sender/date/snippet preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items, default 20, max 200

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so description must carry the burden. It specifies the returned fields and limits, but does not explicitly state read-only nature, ordering (likely descending by date), or if results are live or cached. Adequate but not thorough.

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

Conciseness5/5

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

Single sentence with no wasted words. Front-loaded with the core purpose ('Returns the most recently indexed mails'). Excellent conciseness.

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

Completeness4/5

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

For a simple read-only listing tool with one parameter, the description provides sufficient information (fields returned, source database). It could mention ordering or that it's read-only, but overall it is reasonably complete without 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 100% and the parameter 'limit' is well-described in the schema (max items, default 20, max 200). The description adds no additional semantic value beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states it returns the most recently indexed mails with specific fields (subject/sender/date/snippet preview). It distinguishes from sibling tools like get_mail_detail or get_mail_by_rowid, which serve different purposes.

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

Usage Guidelines3/5

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

The description implies usage for fetching recent mails quickly, but provides no explicit guidance on when to use versus alternatives like list_incomplete_mails or get_mail_detail. No when-not-to-use or context provided.

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

get_mobile_sync_statusA

Get mobile-sync status: number of connected folders, HTTP folders and polling state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so the description carries the burden. It describes the output fields but does not explicitly state that the tool is read-only, non-destructive, or what permissions might be needed. Adding a note about safety would improve 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?

A single, front-loaded sentence with no extraneous words. Every piece of information earns its place.

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

Completeness4/5

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

Given no parameters, no output schema, and low complexity, the description covers the basic purpose and return values. However, it lacks details about error conditions or the format of the output (e.g., JSON structure). Still, it is largely complete for a simple status 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?

There are no parameters, so schema coverage is 100%. Per guidelines, 0 parameters yields a baseline of 4. The description adds no param info because none is needed.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'mobile-sync status', and lists specific data points: number of connected folders, HTTP folders, polling state. It distinguishes from siblings like get_app_status or get_cloud_status by focusing on mobile sync.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs. alternatives. For a simple status getter, usage is somewhat self-evident, but the description could mention that it retrieves current mobile sync state without modifying anything.

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

get_processing_progressA

Get the live OCR processing progress: is_processing flag, total/processed item counts and progress percent.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states 'live' progress but does not elaborate on whether the data is cached or fetched fresh each call, nor does it mention any side effects or permissions. Adequate but minimal.

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

Conciseness5/5

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

The description is a single sentence that front-loads the purpose (get live OCR progress) and specifies the exact data returned. Every word serves a purpose.

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

Completeness4/5

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

The description is complete for a simple tool with no parameters and listed return fields. It could mention behavior when no processing is active or error conditions, but these are minor 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?

There are no parameters, so schema coverage is 100%. Per guidelines, a 0-parameter tool receives a baseline of 4. The description does not need to explain parameters.

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

Purpose5/5

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

The description clearly states the tool retrieves live OCR processing progress and lists specific fields (is_processing flag, counts, percent). This distinguishes it from siblings like get_processing_status by specifying 'OCR' progress.

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

Usage Guidelines4/5

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

The description implies use when live OCR progress is needed, providing clear context for usage. However, it does not explicitly exclude alternatives such as get_processing_status, which might also report processing state.

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

get_processing_statusA

Get OCR processing statistics: total documents, counts by state (completed, not_processed, processing, error, etc.), per-folder breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Does not disclose read-only nature, permissions, or side effects. Only states what is returned, not behavioral traits beyond that.

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

Conciseness5/5

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

Single sentence with no filler. Front-loaded with key information: verb, resource, and output details.

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

Completeness4/5

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

Adequately describes return value given no parameters, no output schema, and no annotations. Could mention format of per-folder breakdown, but overall sufficient for a simple stats 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?

Tool has zero parameters; schema coverage is 100%. Description adds value by explaining what the output contains (total, state counts, per-folder breakdown), which is appropriate for a no-parameter endpoint.

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

Purpose5/5

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

Description clearly states verb 'Get', resource 'OCR processing statistics', and specifics like 'total documents, counts by state, per-folder breakdown'. Distinguishes from siblings such as get_folder_processing_status and get_processing_progress.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. While name implies global status, description does not mention exclusions or prerequisites.

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

get_search_stateA

Get the currently animated OCR hit rects on the document preview. Returns the active search text, per-rect page index, matched text, and the four corner points in normalized page coordinates [0.0..1.0] (origin top-left). Use this to debug highlights drawn outside the page bounds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Discloses the return format in detail, including coordinate system and normalization. However, with no annotations, it doesn't state side effects or permissions, but for a read-only get operation this is sufficient.

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

Conciseness5/5

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

Two succinct sentences: first states purpose and output, second adds a debugging usage hint. 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?

For a tool with no parameters and no output schema, the description thoroughly explains return values and coordinate system, and provides a specific use case. It is fully adequate.

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

Parameters4/5

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

No parameters exist, so schema coverage is 100%. The description adds context about what the tool returns, which is valuable beyond the empty 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 gets 'currently animated OCR hit rects on the document preview' and lists the exact returned fields (active search text, per-rect page index, etc.), distinguishing it from siblings like get_document_ocr_rects by specifying 'animated' and connection to search state.

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

Usage Guidelines4/5

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

Provides a specific use case: 'Use this to debug highlights drawn outside the page bounds.' While it doesn't explicitly exclude other uses or compare to alternatives, the hint is clear and actionable for the intended scenario.

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

get_settingsA

Get current app settings. Specify a category or omit for all settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoSettings category (default: all)

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so description must cover behavioral traits. It indicates read-only behavior but lacks details on performance, data volume, or permissions. Adequate but minimal.

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

Conciseness5/5

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

Single sentence, no extraneous information, front-loaded with key action and resource.

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 1 optional parameter and no output schema, the description fully covers what the agent needs: what it does and how to use it.

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

Parameters3/5

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

Schema coverage is 100% with enum descriptions; description adds minimal value by restating the default behavior. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get', resource 'current app settings', and scope via category or all, distinguishing it from sibling tools like get_app_status.

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

Usage Guidelines4/5

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

Provides clear instruction to specify a category or omit for all settings, but doesn't explicitly list when not to use or alternatives, which is acceptable for a simple retrieval tool.

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

get_ui_stateA

Get current UI state: selected document, list item count, search/browse mode, focused field.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided. Description only lists returned information but does not disclose behaviors like error conditions, whether a document must be selected, or if state is always available.

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

Conciseness5/5

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

Single sentence, front-loaded with key purpose, no unnecessary words. Highly concise.

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

Completeness3/5

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

No output schema. Description lists properties but lacks format details or types. For a state-retrieval tool, more specificity would be helpful.

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

Parameters4/5

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

No parameters exist, so schema coverage is 100%. Description adds no parameter info, but baseline for 0 params is 4.

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

Purpose5/5

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

Description clearly states the tool retrieves current UI state and lists specific properties (selected document, list item count, search/browse mode, focused field). It distinguishes from siblings that focus on individual UI aspects.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings like get_search_state or ui_get_filters. Agent must infer usage from context.

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

get_unread_scan_countA

Get the number of recently scanned items not yet marked as read.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so description bears full burden. It doesn't state that the tool is read-only or whether it has side effects. For a simple getter, this is adequate but could 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?

Description is a single sentence that is short, clear, and front-loaded. Every word is meaningful, no fluff.

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

Completeness3/5

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

No output schema, so description should hint at return format (e.g., integer count). The term 'recently scanned' is vague without timeframe. Overall adequate but could add return type and 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?

No parameters exist, so schema coverage is 100%. Description doesn't need to add parameter details. Baseline for no parameters is 4.

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

Purpose5/5

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

Description clearly states it gets the count of recently scanned items that are unread, which distinguishes it from siblings like 'list_recent_scans' (lists items) and 'mark_scan_as_read' (modifies state).

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

Usage Guidelines3/5

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

No explicit when-to-use or alternative guidance. Usage context is implied by sibling tool names, but not explicitly stated. A sentence like 'Use when you need a numeric count rather than a list' would improve this.

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

list_cloud_itemsA

List cloud-service items across all folders with file path, folder, state and modification date. Optionally filter by state.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional state filter.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must convey behavioral traits. It indicates a read operation (list) and mentions returned fields, but omits pagination, result limits, sorting, authorization needs, or whether the list is all items or paginated. The absence of such details reduces transparency.

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

Conciseness4/5

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

The description is a single short sentence, which is concise and front-loaded with the most important information. However, it could be improved by structuring the list of returned attributes or separating the filtering option more clearly. No wasted words.

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

Completeness3/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description provides the key purpose and basic output fields. However, it lacks details on response format, pagination, or whether the list includes all items globally. For a complete understanding, more context would be beneficial.

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

Parameters3/5

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

Schema coverage is 100% for the one parameter 'state', which already includes an enumeration and description. The tool description merely restates the filter capability ('Optionally filter by state') without adding new semantic meaning. This meets the baseline for full schema coverage.

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

Purpose5/5

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

The description clearly states the action ('List'), resource ('cloud-service items'), and specific attributes returned (file path, folder, state, modification date). It distinguishes itself from sibling tools like 'list_folder_contents' (per-folder) and 'list_folders' (list of folders) by emphasizing 'across all folders'.

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

Usage Guidelines3/5

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

The description implies global scope ('across all folders') and optional state filtering, but does not explicitly contrast with siblings like 'list_folder_contents' for per-folder listing or 'search_documents' for more advanced filtering. No direct 'when to use' or 'when not to use' guidance.

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

list_folder_contentsB

List documents in a specific folder with processing state. Supports pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 50, max 500)
offsetNoOffset for pagination (default 0)
folder_idYesFolder ID (from list_folders)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations, so description carries full burden. Only states listing and pagination; no mention of non-destructive nature, auth needs, or error handling.

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

Conciseness4/5

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

Two short sentences efficiently convey core functionality. No redundant text, but could benefit from slightly more detail.

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

Completeness2/5

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

No output schema; description does not specify return format or fields. Missing context for a complete understanding of tool behavior.

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

Parameters3/5

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

Schema coverage is 100%, so description adds no extra parameter meaning beyond what schema already provides. 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?

Clearly states the verb 'list', resource 'documents', and scope 'in a specific folder with processing state'. Differentiates from siblings like list_folders and search_documents.

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

Usage Guidelines2/5

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

No explicit guidance on when to use or when not to use. Mentions pagination but no comparison to alternatives like search_documents.

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

list_foldersA

List all indexed document folders with their IDs and paths.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description must cover behavior. It states it's a list operation but lacks details on side effects, 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.

Conciseness5/5

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

Single sentence, no wasted words, front-loaded with the key action and result.

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

Completeness2/5

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

Minimal description; no output schema, no details on result format, pagination, or potential issues. For a simple tool, it is barely adequate.

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

Parameters4/5

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

No parameters; schema coverage is 100% with empty properties. Description adds no parameter info, but that is acceptable for a parameterless tool (baseline 4).

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

Purpose5/5

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

Clear verb 'List', specific resource 'indexed document folders', and what is returned ('IDs and paths'). Distinguishes from sibling tools like add_folder or delete_folder.

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

Usage Guidelines3/5

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

Implied usage context (listing folders) but no explicit guidance on when to use this vs. siblings like list_folder_contents or get_folder_stats.

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

list_incomplete_mailsA

List Apple Mail records that are not 'success' (empty/failed/pending) with externalId, attemptCount, errorReason, envelopeRowid.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items, default 50, max 500.
statusNoOptional filter; omit for all non-success records.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only listing but does not explicitly state that it is non-destructive, nor does it disclose any side effects, performance implications, or required permissions.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the key information. Every word serves a purpose, with no redundancy.

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

Completeness4/5

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

For a simple list tool with good parameter documentation, the description is largely complete. It covers the record scope and returned fields. The absence of an output schema is mitigated by the explicit field list. It does not detail pagination, but the schema covers the limit parameter.

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

Parameters4/5

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

With 100% schema description coverage, the baseline is 3. The description adds value by clarifying that omitting the status filter returns all non-success records and by listing the returned fields, which aids understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'List', the resource 'Apple Mail records', and the specific scope 'not success (empty/failed/pending)'. It also lists included fields, distinguishing it from siblings like get_mail_detail or list_mail_attachments.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives like get_mail_by_rowid or retry_incomplete_mails. It adequately implies its purpose for batch retrieval of non-success records, but lacks usage boundaries or exclusions.

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

list_mail_attachmentsA

List attachments of an indexed mail: external files from the Apple Mail Attachments folder plus inline MIME parts. Returns name, size, content_type and kind (external/inline).

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesRFC message-id (external_id) of the mail.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description covers the return fields (name, size, content_type, kind) and the two kinds of attachments. However, it does not disclose potential side effects, permissions, rate limits, or behavior regarding nested attachments or pagination. It is moderately 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 extremely concise: two sentences that front-load the purpose and then list the return fields. Every word adds value, with no redundancy or filler.

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

Completeness3/5

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

Given the tool has one parameter and no output schema, the description adequately states what is returned (fields and kinds). However, it lacks details on return format (e.g., array), ordering, or whether recursive attachments are included. It is sufficient for basic understanding but incomplete for advanced use.

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

Parameters3/5

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

The schema has 100% coverage with a clear description for the single parameter 'message_id'. The tool description does not add additional meaning beyond the schema, so it meets the baseline of 3.

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

Purpose5/5

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

The description clearly states the verb 'list', the resource 'attachments of an indexed mail', and specifies the two types of attachments (external files and inline MIME parts). It also lists the returned fields, making the purpose unmistakable and distinct from sibling tools like 'list_folder_contents'.

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

Usage Guidelines2/5

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

The description implies the mail must be indexed but does not explicitly state when to use this tool versus alternatives like 'get_mail_attachment' (for a single attachment) or other list tools. No when-not-to-use guidance or prerequisites are provided.

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

list_mail_cloud_jobsA

List Office-attachment Cloud-Jobs (mailCloudJobs). Returns per-job docPortJobId, status, attemptCount, attachment metadata. Use status filter for slice.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items, default 100, max 500.
statusNoOptional filter; omit for all jobs.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It describes a read operation (listing) but does not explicitly state it is read-only, safe, or lacks side effects. No mention of permissions, rate limits, or other behavioral traits beyond the obvious.

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

Conciseness5/5

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

The description is two sentences with no redundant information. The first sentence states the purpose and key return fields; the second provides a usage hint. Every part earns its place.

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

Completeness4/5

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

Given no output schema, the description usefully lists returned fields. It covers the tool's action and key parameters. Lacks details on pagination, ordering, or error cases, but for a simple list operation with only 2 parameters, this is mostly adequate.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are well-documented in the schema (limit with max/default, status with enum values). The description adds minimal value ('Use status filter for slice'), not substantially enhancing understanding beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it lists Office-attachment Cloud-Jobs and specifies the returned fields (docPortJobId, status, attemptCount, attachment metadata). It distinguishes from sibling tools like cancel_pending_mail_cloud_jobs and retry_failed_mail_cloud_jobs by being purely a list operation.

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

Usage Guidelines3/5

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

The description gives one usage hint ('Use status filter for slice') but does not explicitly state when to use this tool versus alternatives (e.g., list_mail_attachments, get_mail_detail). Context is implied but no exclusions or when-not-to-use guidance provided.

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

list_mobile_devicesA

List folders shared with mobile devices including backend, client identifier and last sync timestamps.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It describes the listing operation and output fields, but doesn't disclose read-only nature, side effects, or permissions. Adequate but not rich.

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

Conciseness5/5

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

Single sentence, front-loaded with verb and resource, no unnecessary words. Efficient and clear.

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

Completeness4/5

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

Given no output schema, the description usefully specifies the returned fields. Lacks details on pagination, ordering, or filtering, but acceptable for a simple no-parameter list.

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

Parameters4/5

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

Input schema has no parameters, so baseline is 4. The description adds no parameter info because none 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 action (list), the resource (folders shared with mobile devices), and the output fields (backend, client identifier, last sync timestamps). It distinguishes from sibling tools like list_folders or list_cloud_items.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. No mention of prerequisites, typical use cases, or when not to use it.

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

list_recent_scansA

List recently scanned items with file name/path/type, creation date and read state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so the description must carry behavioral details. It lists output fields but doesn't specify ordering, pagination, limits, or what 'recent' means (e.g., time window). The behavior is partially transparent but missing key constraints.

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

Conciseness5/5

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

Single sentence with no waste. It efficiently conveys the tool's purpose and output format.

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 no-param list tool without output schema, the description is mostly complete. However, it omits details about result ordering, count limits, and the definition of 'recent'—though these are minor gaps for a straightforward query.

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 are no parameters (0 params), so baseline is 4. The description adds meaning by enumerating the returned fields, which compensates for the lack of parameters. Schema coverage is 100% implicitly.

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 recently scanned items and specifies included fields (file name/path/type, creation date, read state). It distinguishes from siblings like search_documents or get_document_metadata by focusing on a predefined 'recent' set.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. The description implies use for a quick overview of recent scans, but alternatives like search_documents are not mentioned. Context is implied but not explicit.

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

mark_scan_as_readB

Mark a recent scan item as read by its scan ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYesScan item ID from list_recent_scans.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided. The description only states the action without disclosing side effects, such as whether it affects unread counts, if it is reversible, or any prerequisites. The behavioral impact is minimally described.

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 one short sentence, efficient and front-loaded. However, it could include more context without losing conciseness, such as the effect on the item's status.

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

Completeness3/5

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

For a simple mutation with one parameter and no output schema, the description covers the basic purpose but lacks behavioral context like what 'read' means and any consequences. The sibling tools list is large but the tool is simple.

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

Parameters3/5

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

Schema coverage is 100%, with a clear description for scan_id. The tool description adds no extra meaning beyond 'by its scan ID'. Baseline of 3 applies since the schema already documents the parameter fully.

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 ('mark as read'), the resource ('a recent scan item'), and the identifier ('scan ID'). It is specific and distinguishes from siblings like 'list_recent_scans' and 'get_unread_scan_count'.

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

Usage Guidelines3/5

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

The description implies usage after listing recent scans (referencing scan ID from list_recent_scans) but does not explicitly state when to use this tool versus alternatives or when not to use it. No exclusion criteria or alternative tools are mentioned.

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

mobile_syncB

Trigger a mobile sync. Pass folder_path to sync a single connected folder, or omit to sync all.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoOptional path of a connected folder to sync. Omit for all.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the action but does not mention whether the sync is asynchronous, if it can interrupt ongoing syncs, or any required device state. Minimal disclosure beyond the 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?

Two sentences, front-loaded with the action, no wasted words. Perfectly concise and structured.

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

Completeness2/5

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

Given the complexity of mobile sync (likely asynchronous, requires pairing), the description omits important context: return value, how to check status, or what constitutes a 'connected folder'. Lacks completeness for effective use.

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

Parameters3/5

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

Schema description coverage is 100% with a clear description for folder_path. The description adds no new meaning beyond restating the schema. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'trigger' and the resource 'mobile sync', with explicit scope: single folder (with folder_path) or all (omit). It distinguishes from sibling sync tools like cloud_sync and rescan_folder.

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

Usage Guidelines3/5

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

The description provides clear instructions on when to pass folder_path vs omit. However, it does not discuss when to choose this tool over alternatives (e.g., cloud_sync) or any prerequisites like device pairing. Adequate but lacks exclusions.

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

open_document_externalA

Open a document (by document_id or file_path) with the default macOS application, e.g. Preview for PDFs. Only works when the app runs on the same Mac as the MCP client.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNoOr: file path to open
document_idNoDocument ID to open

TDQS

A4.2/5.0
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 operation opens the document with a default application and is restricted to the local Mac. It does not detail potential errors or side effects, but for a simple open action, the transparency is sufficient.

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

Conciseness5/5

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

Two sentences efficiently convey the purpose and a critical constraint. Every sentence adds value with no filler.

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

Completeness4/5

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

Given the tool's low complexity and lack of output schema, the description covers the core functionality and the main constraint. It does not address return values or error scenarios, but these are typical for an open action.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains both parameters. The description adds no new semantic information beyond restating that either identifier can be used, earning a baseline score of 3.

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

Purpose5/5

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

The description clearly states the action (Open), the resource (a document), and the method (by document_id or file_path). It distinguishes from sibling tools like open_in_apple_mail and open_in_finder by specifying 'default macOS application' and giving an example (Preview for PDFs).

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

Usage Guidelines4/5

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

The description explicitly says when to use (open a document with default app) and includes a key limitation about running on the same Mac. It does not explicitly state alternatives or when not to use, but the sibling context provides enough differentiation.

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

open_in_apple_mailA

Open Apple Mail and jump to the message with the given RFC message-id. Only works when MCP client and app run on the same Mac.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesRFC 2822 message-id, with or without angle brackets

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It explains the primary behavior (opening and jumping) and a platform constraint, but does not disclose side effects, error behavior (e.g., if message not found), or whether the action is read-only or destructive.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core action, and every word is informative. No redundancy or unnecessary details.

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

Completeness3/5

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

The tool is simple with one parameter and no output schema. The description adequately covers the action and constraint but omits details about return value or error handling, which would be helpful for an agent to handle outcomes.

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

Parameters3/5

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

The input schema already describes the message_id parameter in detail (RFC 2822 format, angle brackets optional). The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate given 100% schema coverage.

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

Purpose5/5

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

The description clearly states the action (Open Apple Mail and jump to the message) and the resource (message with given RFC message-id). It also provides a constraint (same Mac), distinguishing it from siblings like reveal_mail_in_finder or get_mail_detail.

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

Usage Guidelines4/5

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

The description provides a clear prerequisite ('Only works when MCP client and app run on the same Mac'), which guides when to use the tool. However, it does not explicitly state when not to use or list alternatives among the many sibling tools.

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

open_in_finderA

Reveal a document in macOS Finder by document_id or file_path. Only works when the app runs on the same Mac as the MCP client.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNoOr: file path to reveal
document_idNoDocument ID to reveal

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses the platform requirement and mentions the action (reveal in Finder). It does not detail the exact behavior (e.g., opening Finder and selecting the file) or potential outcomes if the file is missing, but for a simple reveal operation this is adequate.

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

Conciseness5/5

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

The description is two sentences long, no extraneous words, and front-loads the action. Every sentence contributes meaningful 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?

For a simple reveal tool with no output schema, the description covers the main purpose and a critical constraint. It does not mention return behavior (e.g., whether it returns a success message), but this is minor given the tool's simplicity. The sibling tool list includes related tools, providing context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description echoes the purpose but adds no new semantic detail beyond what the schema provides. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool reveals a document in macOS Finder using either document_id or file_path. It specifies the platform and a key constraint (same Mac). This distinguishes it from siblings like 'open_document_external' and 'reveal_mail_in_finder'.

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

Usage Guidelines4/5

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

The description provides a clear context: it works only when the app and MCP client are on the same Mac. However, it does not explicitly state when to use this tool versus alternatives, such as when to use 'open_document_external' instead.

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

patch_settings_appearanceC

Update appearance settings. Accepted fields: theme, accent_color, sidebar_visible, list_density, show_thumbnails, font_size, grid_view.

ParametersJSON Schema
NameRequiredDescriptionDefault
themeNo
font_sizeNo
grid_viewNo
accent_colorNo
list_densityNo
show_thumbnailsNo
sidebar_visibleNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided. Description only says 'Update appearance settings' without mentioning side effects, authentication requirements, or any limitations. For a mutation tool with no annotations, more transparency is expected.

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

Conciseness4/5

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

Short and front-loaded with the action and accepted fields. No wasted words, though bullet points could improve readability but not necessary.

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

Completeness2/5

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

Given no output schema, 7 parameters, and similar sibling tools, the description is too sparse. It lacks information about defaults, validation, or what happens after the update.

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

Parameters2/5

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

Schema description coverage is 0%, so description must compensate. It lists all 7 parameter names but provides no explanations of their meaning, valid values, or constraints. This adds minimal value beyond the schema property names.

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

Purpose4/5

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

Description clearly states the tool updates appearance settings and lists accepted fields. However, it does not differentiate from sibling tools like patch_settings_processing, patch_settings_search, etc.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. With many patch_settings_* siblings, explicit context for use would be helpful but is absent.

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

patch_settings_processingB

Update OCR/processing settings. Accepted fields: ocr_enabled, ocr_language, auto_process_new, max_concurrent_tasks, process_images, process_pdfs, thumbnail_quality, ocr_quality, max_file_size_mb.

ParametersJSON Schema
NameRequiredDescriptionDefault
ocr_enabledNo
ocr_qualityNo
ocr_languageNo
process_pdfsNo
process_imagesNo
auto_process_newNo
max_file_size_mbNo
thumbnail_qualityNo
max_concurrent_tasksNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description only says 'Update' without disclosing behavioral traits like whether it overrides all settings or merges, any side effects, or permission requirements.

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

Conciseness4/5

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

The description is very concise at one sentence, listing fields efficiently, but sacrifices necessary detail for completeness.

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

Completeness2/5

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

With 9 parameters, no output schema, and no annotations, the description is insufficient; it does not explain the purpose of each field, valid values, or any constraints, leaving significant gaps for an AI agent.

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

Parameters2/5

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

Although all 9 parameter names are listed, the description adds no semantic context beyond the names; for example, ocr_quality and thumbnail_quality are strings but no allowed values or descriptions are provided, failing to compensate for 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?

The description clearly states 'Update OCR/processing settings' with a specific verb and resource, and the list of accepted fields distinguishes this tool from sibling patch_settings tools for appearance, search, and sharing.

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

Usage Guidelines3/5

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

The description implies this tool is for updating processing settings but does not explicitly state when to use it versus alternatives or provide any prerequisites or context about partial updates.

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

patch_settings_sharingC

Update mobile-sharing settings. Accepted fields: enabled, require_approval, share_name, max_devices, auto_accept_known, read_only, sharee_key.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNo
read_onlyNo
share_nameNo
sharee_keyNo
max_devicesNo
require_approvalNo
auto_accept_knownNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. 'Update' implies mutation, but there is no mention of side effects, like whether settings are wholly replaced or merged, or if any fields have dependencies. The agent is left guessing about impacts.

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

Conciseness3/5

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

The description is short and front-loads the purpose, but the second sentence listing all parameters is redundant with the schema, wasting words. Could be more concise by omitting the list.

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

Completeness2/5

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

Given 7 parameters, no output schema, and no annotations, the description is incomplete. It does not explain the result of the update, the effect on mobile sharing, or any related prerequisites. The agent lacks sufficient context.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must add meaning. It merely lists the seven parameter names already in the schema, without explaining what each field does, valid values, or constraints. This adds negligible value.

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

Purpose4/5

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

The description clearly states the tool updates 'mobile-sharing settings' with a specific verb and resource, distinguishing it from sibling tools like patch_settings_appearance. However, it does not further differentiate the scope of sharing settings.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus other patch_settings_* tools, nor any prerequisites or conditions for use. The description lacks context for the agent to decide appropriateness.

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

refresh_licenseB

Refresh license status by re-syncing with the license server. Use force=true to bypass cache.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce server sync, bypassing cache (default false)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions re-syncing with a server and cache bypassing, but does not state whether the tool is read-only or mutates state, potential side effects (e.g., network delays, auth requirements), or what happens on failure. This is insufficient given the absence of 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 two sentences with no waste. The first sentence states the core action, and the second provides parameter guidance. It is front-loaded and highly concise.

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

Completeness2/5

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

The tool has no output schema, so the description should hint at return values or outcomes. It does not mention what the tool returns (e.g., success status, updated license info) or error conditions. For a simple tool with one parameter, this omission leaves the agent without enough context for correct invocation handling.

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

Parameters3/5

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

Schema coverage is 100%, and the schema description for 'force' already explains its purpose. The tool description adds 'bypass cache' which echoes the schema, providing no additional meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Refresh' and the resource 'license status' with the method 're-syncing with the license server'. This distinguishes it from siblings like get_license_status (read-only) and activate_license (mutative).

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

Usage Guidelines3/5

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

The description gives guidance for when to use the force parameter ('Use force=true to bypass cache'), but does not explicitly explain when to use this tool vs. alternatives like get_license_status. The usage context is implied but lacks explicit when-not-to-use or alternatives.

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

reindex_apple_mailB

Trigger an indexer run. Pass restart=true to stop the current task first.

ParametersJSON Schema
NameRequiredDescriptionDefault
restartNoIf true, stop a running indexer task before starting a fresh one.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral traits. It only says 'trigger an indexer run' and explains the restart parameter, but omits important behavioral details like whether the operation is safe to repeat, whether it requires specific permissions, or if it has side effects on system performance. This is insufficient for safe invocation.

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

Conciseness5/5

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

The description is extremely concise: two sentences front-loaded with the core purpose and the key parameter nuance. No wasted words.

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

Completeness3/5

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

For a tool with one parameter and no output schema or annotations, the description is somewhat complete in covering the action and parameter. However, it fails to provide context about idempotency, expected duration, or whether the indexer run is blocking or fire-and-forget, leaving gaps for an AI agent.

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

Parameters3/5

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

Schema coverage is 100% and the schema already describes the restart parameter well. The description's sentence 'Pass restart=true to stop the current task first' adds minimal extra meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool triggers an indexer run for Apple Mail, which is specific and actionable. However, it does not explicitly differentiate from sibling tools like 'get_mail_index_status' or 'clear_mail_index', which could be confused.

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

Usage Guidelines3/5

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

The description mentions the restart parameter for stopping an existing task, providing some usage context. But it does not specify when to use this tool versus alternatives (e.g., checking index status or clearing index), nor does it mention prerequisites or pitfalls.

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

reprocess_documentA

Re-queue a document for OCR processing. Useful when OCR failed or the document was updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce reprocess even if currently processing (default false)
document_idYesDocument ID to reprocess

TDQS

A4/5.0
Behavior3/5

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

Without annotations, the description should convey behavioral traits. It mentions 're-queue' implying a non-destructive trigger, but does not clarify whether the operation is asynchronous, idempotent, or has side effects. The 'force' parameter from the schema adds some transparency, but the description does not elaborate.

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

Conciseness5/5

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

The description is two concise sentences with no unnecessary words. It is front-loaded with the primary action, making it easy to parse quickly.

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 (2 parameters, no output schema), the description adequately covers its purpose and typical use cases. It could be improved by noting potential delays or that the server may reject repeated requests, but it is sufficient for an agent.

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

Parameters3/5

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

The input schema covers all parameters with descriptions (100% coverage), so the baseline is 3. The description does not add additional meaning beyond the schema, such as specifying default behavior of 'force' or expected format of 'document_id'.

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 ('Re-queue a document') and the specific resource ('for OCR processing'). It effectively distinguishes from sibling tools, as no other sibling offers reprocessing functionality.

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

Usage Guidelines4/5

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

The description provides explicit use cases: 'Useful when OCR failed or the document was updated.' It does not mention when not to use or provide alternatives, but the context makes it clear when to invoke.

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

request_trialA

Start a trial period. Sensitive. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to execute this irreversible/sensitive action.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It adds 'Sensitive' and 'Requires confirm=true,' but these largely duplicate the schema's parameter description. It does not explain effects or side effects beyond that.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, no wasted words. Every sentence earns its place.

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

Completeness4/5

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

For a simple tool with one parameter and no output schema, the description covers the essential action and sensitivity. However, it could explain what 'trial period' entails, especially given siblings like 'activate_license'.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add additional meaning about the parameter; it only echoes the schema's requirement.

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 'Start a trial period,' which is a specific verb and resource. It distinguishes from siblings like 'activate_license' by explicitly labeling it as sensitive and requiring confirmation.

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

Usage Guidelines3/5

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

The description does not compare this tool to alternatives or state when not to use it. It implies usage for starting a trial but lacks explicit guidance on context.

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

rescan_folderA

Rescan a folder (by folder_id) for new or changed files. Initiates an asynchronous folder scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idYesFolder ID to rescan

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description discloses the async nature, which is key. However, it does not detail side effects, required permissions, or how to handle the async result (e.g., no mention of status checks).

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

Conciseness5/5

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

Two sentences, no wasted words. Front-loaded with the action and resource. Highly concise.

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

Completeness3/5

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

For a simple tool with no output schema, the description covers core purpose and async behavior but lacks guidance on post-invocation steps (e.g., checking status) or edge cases.

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

Parameters3/5

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

Schema coverage is 100% and the parameter description is clear. The description adds little beyond the schema, only restating 'by folder_id'. Baseline 3 applies.

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

Purpose5/5

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

The description clearly states the action (rescan), resource (folder by folder_id), and scope (new/changed files). It distinguishes from sibling tools like add_folder or delete_folder by focusing on rescanning.

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

Usage Guidelines4/5

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

No explicit when-to-use or alternatives are given, but the purpose is straightforward. The description implies usage for refreshing folder contents, but lacks explicit guidance on when not to use or alternatives.

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

retry_failed_mail_cloud_jobsA

Reset all 'failed' Office-attachment Cloud-Jobs to 'pending' with attemptCount=0, then trigger an immediate worker-tick.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It clearly discloses the state change (reset to pending with attemptCount=0) and the immediate triggering of a worker-tick. However, it does not mention potential side effects like re-processing implications or idempotency.

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

Conciseness5/5

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

A single sentence that is efficient, front-loaded with the action, and contains no extraneous information. Every word earns 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 no parameters, no output schema, and clear description, the tool is fully explained. It covers what it does, to which jobs, and what follows (worker tick). No gaps.

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

Parameters4/5

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

There are zero parameters, so baseline is 4. The description adds meaning by explaining the action without needing parameter details. The schema coverage is trivial due to no 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 uses a specific verb 'Reset' and clearly identifies the resource 'failed Office-attachment Cloud-Jobs'. It distinguishes from siblings by explicitly targeting failed jobs and triggering a worker tick, which is unique among similar tools like cancel_pending_mail_cloud_jobs.

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

Usage Guidelines3/5

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

The description implies usage when there are failed jobs to retry, but does not provide explicit when-not-to-use or alternative tools like cancel_pending_mail_cloud_jobs for pending jobs. The context is clear but lacks exclusions.

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

retry_incomplete_mailsA

Reset attemptCount and indexStatus='pending' for all non-success records and trigger an indexer run. Pulls newly-arrived .emlx bodies in.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description discloses key behaviors: resetting fields, triggering an indexer run, and pulling bodies. However, it lacks details on potential side effects, authorization needs, or return values, but is adequate for a simple 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?

Two sentences, no wasted words. Essential information is front-loaded. Highly concise.

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

Completeness4/5

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

Given no output schema, no annotations, and no parameters, the description is fairly complete. It explains the reset and trigger actions. Could mention return value but not critical.

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

Parameters4/5

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

No parameters exist, so schema coverage is trivial. Description adds value by explaining the actions taken, but no param details are needed. Baseline 4 for zero-parameter tool.

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

Purpose5/5

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

Description clearly states it resets attemptCount and indexStatus for non-success records, triggers an indexer run, and pulls newly-arrived .emlx bodies. This is specific and distinct from sibling tools like retry_failed_mail_cloud_jobs.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives. It implies usage for retrying incomplete mails but does not provide context about prerequisites, exclusions, or comparison with siblings like list_incomplete_mails or retry_failed_mail_cloud_jobs.

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

reveal_mail_in_finderA

Reveal the .emlx file of an indexed mail in Finder (falls back to opening it in Apple Mail). Only works on the same Mac as the app.

ParametersJSON Schema
NameRequiredDescriptionDefault
external_idYesRFC message-id of the mail to reveal.

TDQS

A4.3/5.0
Behavior4/5

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

Discloses fallback behavior and Mac-only limitation. Without annotations, description carries full burden; it sufficiently explains the tool's behavior, though it does not detail permissions or error handling.

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

Conciseness5/5

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

Two sentences, front-loaded with action and purpose. No redundant or unnecessary words. Each sentence adds value.

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 single required parameter and no output schema, the description fully explains the tool's behavior, fallback, and limitation. It is complete for its complexity.

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

Parameters3/5

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

Schema coverage is 100%, and parameter description already says 'RFC message-id'. The tool description does not add new semantics beyond the schema; it only repeats the term 'RFC message-id'.

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

Purpose5/5

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

Clearly states verb (reveal) and resource (.emlx file of indexed mail) and distinguishes from siblings like open_in_finder by specifying the file type and fallback. The description 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 Guidelines4/5

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

Provides clear context: 'Only works on the same Mac as the app.' and 'falls back to opening it in Apple Mail.' Implicitly suggests when to use (when you want the .emlx file) vs alternatives, but no explicit when-not or sibling comparisons.

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

search_documentsA

Full-text search across all indexed PDF documents. Returns matching documents with snippets and match counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20, max 100)
queryYesSearch query (min 3 characters)
foldersNoOptional: folder IDs to limit search scope
sort_orderNoSort order (default: relevance)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided; description discloses basic functionality (search, return snippets) but no behavioral details like auth requirements, rate limits, or side effects.

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

Conciseness5/5

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

Two efficient sentences with no wasted words; front-loaded with core purpose.

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

Completeness4/5

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

Adequate for a search tool with fully documented schema. Could briefly mention default sorting or folder options, but overall provides sufficient context.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all 4 parameters. Description adds value by mentioning return of snippets and match counts but doesn't enhance parameter meaning beyond schema.

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

Purpose5/5

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

Clearly states verb 'search', resource 'indexed PDF documents', and return values 'snippets and match counts'. Distinct from sibling tools like 'ui_search'.

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

Usage Guidelines3/5

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

Implies usage for full-text search but provides no explicit when-to-use or when-not-to-use guidance, nor alternatives among many sibling tools.

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

setup_apple_mailB

Configure Apple Mail indexing programmatically: bookmark mail_root (default ~/Library/Mail), optionally clear the index, set OCR size limit and account filter, then enable. Avoids the onboarding sheet entirely.

ParametersJSON Schema
NameRequiredDescriptionDefault
enableNoWhether to enable indexing (default true).
mail_rootNoAbsolute path to the user's Mail folder. Defaults to ~/Library/Mail.
clear_indexNoIf true, wipe MailFtsSqlite and reset the cursor before starting.
ocr_limit_mbNoAttachment OCR size limit (25/50/100/200 MB).
account_rowidsNoOptional: mailboxes.ROWID list to filter on. Empty/omit = all accounts.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses several actions (bookmarking, clearing index, setting limits, enabling) and mentions avoiding the onboarding sheet. However, it omits details about side effects, permission requirements, idempotency, failure modes, or return behavior. Some transparency is present but significant gaps remain.

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

Conciseness4/5

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

The description is a single long sentence but covers multiple aspects without redundancy. It front-loads the key action ('Configure...') and enumerates the steps efficiently. Minor improvement could be breaking into bullet points for clarity, but current form is concise.

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

Completeness3/5

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

Given the tool has 5 optional parameters and no output schema, the description provides a reasonable overview but lacks completeness. It does not explain success/failure outputs, prerequisites (e.g., Mail.app installed), or behavior when called multiple times. The 'Avoids the onboarding sheet' is a helpful usage context.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema: it groups the parameters into a workflow sequence ('bookmark... optionally clear... set... then enable') and states the default for mail_root. This provides some context but no new details for individual parameters beyond what the schema already provides.

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

Purpose5/5

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

The description starts with 'Configure Apple Mail indexing programmatically' and lists specific actions (bookmark mail_root, optionally clear index, set OCR limit, account filter, then enable), clearly stating what the tool does. It also mentions 'Avoids the onboarding sheet entirely,' adding a unique benefit. Among siblings like 'clear_mail_index' (single action) and 'disable_apple_mail', this is distinct as a combined setup tool.

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

Usage Guidelines2/5

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

The description gives no indication of when to use this tool versus alternatives. It does not mention sibling tools or specify whether this is for initial setup only or reconfiguration. No exclusions or prerequisites are stated, leaving the agent without guidance on appropriate invocation context.

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

tick_mail_cloud_workerA

Trigger an immediate MailCloudWorker tick (process downloaded/pending/polling jobs now instead of waiting for the 30-second timer).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior fully. It states it triggers an immediate tick, but lacks details on side effects, idempotency, safety, return value, or success/failure behavior. This is insufficient 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 a single, front-loaded sentence with no wasted words. It efficiently conveys purpose and benefit.

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

Completeness3/5

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

Given the tool has no parameters, no annotations, and no output schema, the description is adequate but incomplete. It does not explain what the call returns or whether it is synchronous/asynchronous. More context would help the agent understand the outcome.

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

Parameters4/5

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

The input schema has zero parameters, so there is no need for parameter documentation. Baseline per rules is 4. The description does not add parameter information, which is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'trigger' and the resource 'MailCloudWorker tick', and explains the benefit (process now instead of waiting). It distinguishes from sibling tools like retry_failed_mail_cloud_jobs or list_mail_cloud_jobs.

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

Usage Guidelines4/5

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

The description provides context that this is for immediate processing instead of the 30-second timer, but does not explicitly mention when not to use or contrast with alternatives like cancel_pending_mail_cloud_jobs.

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

ui_dismiss_alertA

Dismiss active app alerts. Pass button_title or button_index to click a specific button, or dismiss_all=true to close every open alert.

ParametersJSON Schema
NameRequiredDescriptionDefault
dismiss_allNoIf true, dismiss all open alerts.
button_indexNoIndex of the alert button to click.
button_titleNoTitle of the alert button to click.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility. It discloses the dismissal mechanism (specific button or all) but does not mention side effects, permissions, error handling, or result. Falls short of full 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?

Two sentences with no unnecessary words. Front-loaded with the core action. Efficient and well-structured.

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

Completeness4/5

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

Given the tool's simplicity and no output schema, the description covers the main functionality. It doesn't specify return values or error cases, but for a dismiss action in a UI context, the provided information is largely sufficient.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for each parameter. The description adds a usage summary (e.g., 'pass button_title or button_index') but no additional meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action 'Dismiss active app alerts,' specifying the verb (dismiss) and resource (active app alerts). This distinguishes it from sibling tools like ui_dismiss_popup (popups) and ui_list_alerts (listing).

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

Usage Guidelines4/5

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

The description provides explicit usage patterns: 'Pass button_title or button_index to click a specific button, or dismiss_all=true to close every open alert.' It clearly indicates when to use each parameter but does not explicitly contrast with alternatives like ui_dismiss_popup.

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

ui_dismiss_popupB

Dismiss a presented popup/sheet in the app UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOptional: identifier of the popup to dismiss.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose behavior when id is omitted, what happens if no popup exists, or any side effects.

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

Conciseness4/5

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

Single sentence, no extraneous words. However, it is slightly too minimal; could benefit from a brief note on behavior without id.

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

Completeness3/5

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

For a simple UI action with one optional parameter and no output schema, the description is acceptable but incomplete. It does not explain the difference between popup and alert, nor what constitutes a popup/sheet.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema's description of 'id' as an optional identifier.

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 'Dismiss' and identifies the resource as 'popup/sheet in the app UI.' This clearly states what the tool does and distinguishes it from sibling tools like ui_dismiss_alert.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as ui_dismiss_alert. No context on prerequisites or when not to use it.

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

ui_get_filtersA

Get the active list filters: file_types, date_range and folders.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the tool gets filters, but fails to mention that it is a read-only operation with no side effects, whether it requires any state to be initialized, or any other behavioral traits. For a getter, this is a significant gap.

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

Conciseness5/5

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

Single sentence with no wasted words. It front-loads the purpose and lists the filter types efficiently. Every word earns its place.

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

Completeness4/5

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

Given the tool is a simple getter with no parameters and no output schema, the description covers the essential information: what it retrieves (active list filters) and which types are included. It lacks detail on the exact data structure or return format, but for a straightforward retrieval tool, this is mostly 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, and the empty schema is fully covered. Baseline for zero parameters is 4. The description adds value by listing the filter types returned, which meaningfully describes the output even though it doesn't pertain to input 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?

Description clearly states it gets active list filters and enumerates the specific filter types: file_types, date_range, and folders. This distinguishes it from sibling tools like ui_set_filters (which sets filters) and other ui_get_* tools that retrieve different UI state components.

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

Usage Guidelines3/5

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

The description implies use when needing the current filters, but provides no explicit guidance on when to use versus alternatives (e.g., other UI getters) or any conditions for use. No when-not or alternative recommendations are given.

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

ui_get_pageA

Get the current page state of the document preview: current_page and total_pages.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It implies a read-only operation with no side effects, but does not disclose potential preconditions, error conditions, or performance characteristics. Adequate for a simple getter but lacks depth.

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

Conciseness5/5

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

Single, short sentence that is front-loaded with the key information. No superfluous text. Every word adds value.

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

Completeness4/5

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

Given no output schema, the description explains the return values (current_page and total_pages). It is nearly complete for a simple query, though lacks context about required state (e.g., document open).

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

Parameters4/5

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

No parameters exist. According to guidelines, 0 parameters yields a baseline of 4. The description adds no parameter info, which is appropriate.

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

Purpose5/5

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

Description clearly specifies the action ('Get') and the resource ('current page state of the document preview'), and explicitly mentions what is returned ('current_page and total_pages'). It distinguishes from sibling tools like ui_set_page and ui_get_zoom.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention prerequisites (e.g., open document) or context. Usage is implied as a simple state query, but no explicit direction.

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

ui_get_popupsA

List the popups/sheets currently presented in the app UI.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
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 clearly states it lists popups/sheets currently presented, which is a safe read operation. However, it lacks details about potential side effects or constraints, though for a simple read tool, this is adequate.

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

Conciseness5/5

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

The description is a single sentence that is extremely concise and front-loaded. Every word serves a purpose with no redundancy.

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

Completeness4/5

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

Given the tool's simplicity (no parameters, no annotations, no output schema), the description provides sufficient context for an agent to understand its function. It would benefit from mentioning the output format or that it returns a list of popup identifiers.

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 no parameters, so the description correctly omits parameter details. Schema coverage is 100%, and the description does not need to add extra information.

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

Purpose5/5

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

The description uses a specific verb ('List') and identifies the resource ('popups/sheets currently presented in the app UI'), clearly defining the tool's purpose. It distinguishes itself from siblings like ui_dismiss_popup or ui_list_alerts.

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

Usage Guidelines3/5

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

The description implies that the tool should be used when one needs to know which popups are currently displayed, but it does not explicitly state when not to use it or mention alternatives like ui_list_alerts. No direct comparison with siblings.

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

ui_get_sortA

Get the current list sort order plus the list of available sort orders.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, but the description accurately describes the behavior as a read operation without side effects. It adds value by specifying both the current state and available options, which is sufficient for a simple getter with no parameters.

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

Conciseness5/5

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

The description is a single, clear sentence that efficiently conveys the tool's purpose without any unnecessary words. It is appropriately sized and front-loaded.

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

Completeness4/5

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

Given the tool's simplicity (no parameters, no output schema), the description provides adequate context: it retrieves the current sort order and available ones. Minor point: it does not specify the format or structure of the returned information, but for a getter this is acceptable.

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

Parameters4/5

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

There are zero parameters, and the input schema is empty with 100% coverage. The baseline is 4. The description does not need to add parameter information, but it contributes by explaining what the tool returns.

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 it retrieves the current list sort order and the list of available sort orders. It uses a specific verb ('get') and resource ('list sort order'), and distinguishes from the sibling tool 'ui_set_sort' which sets the sort.

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

Usage Guidelines3/5

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

The description implies usage for querying the current sort order and available options, but it does not explicitly state when to use this tool versus alternatives like ui_set_sort. Given zero parameters, the context is simple, but no direct guidance is provided.

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

ui_get_transcriptA

Get the transcript panel state: visible flag and mode.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It discloses that the tool returns state (visible, mode), which implies a read operation, but does not explicitly state it is non-destructive, idempotent, or whether it can fail.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the core purpose. It contains no unnecessary information, every word earns 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?

For a simple parameterless getter with no output schema, the description is complete. It states exactly what the tool returns. There is no missing information given the tool's low 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?

No parameters exist, so baseline is 4. The description adds meaning by specifying what is returned (visible flag, mode), which is sufficient for a parameterless tool.

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 gets the transcript panel state, specifying two key properties: visible flag and mode. The verb 'Get' and resource 'transcript panel state' are specific, and it distinguishes itself from siblings like ui_set_transcript.

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

Usage Guidelines4/5

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

The description implies when to use (checking current transcript state) but does not provide explicit exclusion or alternatives. Given the sibling list includes a corresponding setter (ui_set_transcript), the context is clear enough.

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

ui_get_zoomA

Get the document preview zoom state: zoom_level, min/max zoom and fit_mode.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It discloses what the tool returns (zoom_level, min/max zoom, fit_mode), which is sufficient for a simple read-only operation. No side effects are mentioned, which is appropriate for a getter.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and lists the return components. No unnecessary words.

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

Completeness4/5

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

Given no parameters and no output schema, the description provides a complete understanding of the tool's behavior. It lists the expected return fields, though the exact structure is not specified. Still, it is sufficient for an AI agent.

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

Parameters4/5

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

The tool has no parameters (empty schema), so the description does not need to add parameter info. Baseline score of 4 applies as no additional value is required.

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

Purpose5/5

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

Description clearly states the tool's purpose: get the document preview zoom state, listing specific components (zoom_level, min/max zoom, fit_mode). It uses a specific verb and resource, and easily distinguishes from sibling tools like ui_set_zoom.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. However, given the sibling set and the intuitive nature of a getter, the usage context is implied but not explicitly stated.

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

ui_list_alertsA

List the NSAlerts currently shown by the app: title, message, window and button titles.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided. Description does not disclose any behavioral traits such as side effects, permissions, or consumption. It merely states the action without any transparency beyond the basic function.

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

Conciseness5/5

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

Single sentence, front-loaded with the action and key details. No wasted words.

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

Completeness4/5

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

Given no output schema, the description adequately explains the tool's return content (title, message, window, button titles). However, it could clarify whether it returns a list or single alert and the format.

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

Parameters4/5

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

No parameters exist, so schema coverage is 100%. The description adds value by enumerating the returned alert details beyond the schema's empty object.

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 NSAlerts and specifies the exact information provided (title, message, window, button titles). It distinguishes from siblings like ui_dismiss_alert.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives like ui_dismiss_alert or ui_get_popups. Usage is implied but not contextualized.

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

ui_list_itemsA

List the items currently shown in the app's document list.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states 'currently shown', indicating it reflects the live view. However, lacks details on whether the list includes all items or is affected by filters/pagination.

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

Conciseness5/5

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

Single sentence, 11 words, no redundancy or wasted content. Front-loaded with action and resource.

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

Completeness4/5

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

For a simple read-only list tool with no parameters and no output schema, the description adequately explains what it does. Could mention that it returns a list, but the name implies that.

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

Parameters4/5

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

No parameters exist, and schema coverage is 100%. The description adds no parameter info, but none is needed. Baseline for 0 params is 4.

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

Purpose5/5

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

Clearly states the verb 'List' and the resource 'items currently shown in the app's document list'. Effectively distinguishes from siblings like list_folder_contents, list_folders, and ui_get_page.

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

Usage Guidelines3/5

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

Implies usage when needing to see the current document list, but provides no explicit guidance on when to use alternatives or when not to use it. Given the tool's simplicity, some explicit context would help.

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

ui_navigateC

Navigate in the document list: move up/down, jump to first/last, or go to a specific index.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoJump to specific list index (0-based)
directionNoNavigation direction
document_idNoJump to specific document by ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It does not explain side effects (e.g., changing selection, scrolling), prerequisites, or what happens when no parameters are provided.

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

Conciseness4/5

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

The description is concise with a single sentence covering the main actions. It could be slightly clearer about param mutual exclusivity, but overall efficient.

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

Completeness2/5

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

Given no output schema and no annotations, the description lacks details about expected outcome (e.g., success/failure), UI state changes, and whether the tool requires a prior list load. Incomplete for a UI navigation 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 descriptions already cover all three parameters with 100% coverage. The description adds minimal extra meaning (e.g., 'move up/down' aligns with the direction enum). Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool navigates in the document list with specific actions (up/down, first/last, specific index). It distinguishes from sibling tools like ui_select_document (selection) and ui_list_items (listing).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives or how to choose among the three optional parameters. Lacks explicit when-to-use or when-not-to-use context.

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

ui_screenshotA

Take a screenshot of the main application window. Returns base64-encoded PNG image.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Describes action and output clearly. Could mention it is read-only with no side effects, but the description is sufficient for a screenshot operation.

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

Conciseness5/5

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

Single, front-loaded sentence with no wasted words. Efficient and to the point.

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?

Complete for a simple tool with no parameters and no output schema. Action and output are fully described.

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

Parameters4/5

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

No parameters exist, and schema coverage is 100%. Description adds no parameter info, but none is needed.

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

Purpose5/5

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

Clearly states verb 'take', resource 'screenshot of the main application window', and output format 'base64-encoded PNG'. Distinct from 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 Guidelines3/5

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

No explicit usage guidance or when-not-to-use, but tool is unique among siblings so contextual use is implied.

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

ui_select_documentB

Select a specific document by ID or index in the current list.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoList index to select (0-based)
document_idNoDocument ID to select

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It merely states 'select' without explaining side effects (e.g., does it change UI state, trigger any events, or require a preceding action?). The lack of details on what occurs after selection leaves the agent uncertain about the tool's impact.

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

Conciseness5/5

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

The description is a single, well-constructed sentence that places the most important information first. Every word is necessary, and there is no redundant or verbose content.

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

Completeness3/5

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

For a UI selection tool with no output schema, the description covers the selection method but omits post-selection behavior (e.g., what the user sees, whether a document detail panel opens). It does not specify if the tool requires a prior list load, which is important for correct sequencing.

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 base is 3. The description adds minimal value beyond the schema by introducing 'current list' context, but the schema already defines each parameter clearly. The description does not clarify constraints like mutual exclusivity of parameters or default behavior if both are provided.

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

Purpose5/5

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

The description uses a specific verb 'select' and resource 'document', clearly indicating the action. It further specifies the mechanism 'by ID or index' and context 'in the current list', effectively distinguishing it from siblings like 'open_document_external' or 'list_folder_contents'.

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives (e.g., when to select vs. navigate vs. open). It lacks explicit conditions, prerequisites, or examples, leaving the agent to infer usage from the name alone.

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

ui_set_filtersA

Set list filters. Pass file_types (array), date_range (string) and/or clear=true to reset all filters first.

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoIf true, clear all filters before applying.
date_rangeNoDate-range filter key.
file_typesNoFile-extension filters to apply.

TDQS

A3.8/5.0
Behavior3/5

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

The description reveals that clear=true resets all filters first, which adds behavioral context beyond the parameter schema. However, it does not explain other effects like whether filters overwrite or merge, nor mention any side effects or authentication requirements.

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

Conciseness5/5

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

The description is a single, front-loaded sentence of 18 words. It lists the parameters efficiently without any redundant or extraneous text, achieving maximum conciseness.

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

Completeness4/5

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

The description adequately covers the tool's action and parameters for a simple filter-setting tool with no output schema. It could be improved by noting that the filter applies to the current list view or that the list updates afterward, but it is nearly complete.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds minimal extra meaning: it rephrases the parameters and clarifies the clear parameter's reset behavior, but does not provide additional semantics like default values or allowed patterns.

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 'Set list filters,' which is a specific action on a resource. The sibling ui_get_filters provides a clear counterpart, distinguishing the tool's purpose.

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

Usage Guidelines3/5

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

The description implies when to use the tool (to set filters) but provides no explicit guidance on when not to use or alternatives. It does not mention context like when to use ui_set_sort vs this tool.

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

ui_set_pageA

Navigate the document preview. Pass action (first/prev/next/last) or page (1-based page number).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoJump to a specific 1-based page.
actionNoRelative page navigation.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Discloses navigation action but does not mention behavior if both parameters are provided, page out of range, or error handling. Lacks detail on side effects (e.g., UI state changes).

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

Conciseness5/5

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

Two concise sentences with no fluff. Front-loaded with the core action. Every word adds value.

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

Completeness3/5

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

No output schema, so description should clarify return values or confirmation. Missing details on what the tool returns (e.g., success, error). Adequate for a simple UI action but not fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, so schema already documents both parameters. Description summarizes the purpose but adds little beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states the tool's action: navigating a document preview. Specifies two methods: via action (first/prev/next/last) or absolute page number. Distinguishes itself from sibling tools like ui_get_page (read) and ui_navigate (broader).

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

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to pass either 'action' or 'page', implying relative vs absolute navigation. Does not provide explicit when-not-to-use or alternatives, but the specificity is sufficient for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ui_set_sortA

Set the list sort order. Pass sort with one of the values returned by ui_get_sort (e.g. relevance / new2Old / old2New / a2z / z2a).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort order key, e.g. relevance / new2Old / old2New / a2z / z2a.

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It discloses the basic behavior (sets sort order) but does not mention side effects, reversal, or UI state changes. It is adequate but could be more informative about what happens after setting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the action and necessary context. Every word is earned, 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 setter with one parameter and no output schema, the description is complete. It provides all needed information for correct invocation, referencing a sibling tool for valid inputs.

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 describes the parameter, but the description adds concrete example values (relevance, new2Old, etc.) and the critical guidance to use values from ui_get_sort, which enhances understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Set the list sort order.' It also specifies that the sort value should come from ui_get_sort and provides examples, making the action unambiguous. This distinguishes it from other ui_set_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to pass a sort value from ui_get_sort, indicating the need to first retrieve valid options. It does not explicitly state when not to use or provide alternatives, but the context is clear enough for proper usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ui_set_transcriptA

Set the transcript panel. Pass visible (bool) and/or mode (e.g. split / searchResults).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoTranscript mode, e.g. split / searchResults.
visibleNoShow or hide the transcript panel.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only states the action without disclosing behavioral traits like side effects, state changes, or prerequisites. With no annotations, the agent lacks information on potential 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 a single concise sentence, front-loaded with the verb. Every word is necessary and no information is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and simple parameters, the description is mostly adequate but lacks details about what happens when no parameters are provided or the complete list of mode options.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes both parameters thoroughly (100% coverage). The description adds little beyond what the schema provides, so it meets the baseline but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Set' and the resource 'transcript panel', and the parameters listing visible and mode further clarify the purpose. It distinguishes from siblings like ui_get_transcript and other ui_set_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. However, the context of sibling UI manipulation tools implies its usage for modifying the transcript panel.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ui_set_zoomB

Set the document preview zoom. Pass zoom_level (a value between min and max) and/or fit_mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
fit_modeNoFit mode, e.g. fitWidth / fitPage / actualSize.
zoom_levelNoAbsolute zoom level.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions zoom_level is between min and max but does not specify the range. It lacks details on fit_mode values, error handling, or side effects. Minimal disclosure of 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?

Single sentence that front-loads the purpose ('Set the document preview zoom') and then succinctly describes parameters. No redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter tool with only two parameters and no output schema, the description is minimally complete. It could be improved by specifying the allowed range for zoom_level or default behavior, but it covers the core functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The description adds slight value by indicating a range constraint for zoom_level ('between min and max') and repeating fit_mode examples. This is adequate but adds little beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it sets the document preview zoom, specifying both parameters (zoom_level and fit_mode). While it does not explicitly differentiate from sibling tools like ui_get_zoom, the verb 'set' and mention of parameters make the purpose clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., ui_get_zoom for reading, other ui_set_* tools for different settings). The description does not mention when not to use it or provide any contextual usage hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 84 tool updatesv1.0.0
    • First observedactivate_license
    • First observedadd_folder
    • First observedbulk_delete_documents
    • First observedcancel_pending_mail_cloud_jobs
    • First observedcleanup_stale_mail_meta
    • First observedclear_mail_index
    • First observedcloud_sync
    • First observedconfirm_mobile_pairing
    • First observeddeactivate_license
    • First observeddelete_document
    • First observeddelete_folder
    • First observeddisable_apple_mail
    • First observedexport_documents
    • First observedget_app_status
    • First observedget_cloud_status
    • First observedget_document_metadata
    • First observedget_document_ocr_rects
    • First observedget_document_text
    • First observedget_document_thumbnail
    • First observedget_folder_processing_status
    • First observedget_folder_stats
    • First observedget_license_status
    • First observedget_mail_attachment
    • First observedget_mail_by_rowid
    • First observedget_mail_detail
    • First observedget_mail_full_index_status
    • First observedget_mail_index_status
    • First observedget_mail_mailboxes
    • First observedget_mail_message_metadata
    • First observedget_mail_recent
    • First observedget_mobile_sync_status
    • First observedget_processing_progress
    • First observedget_processing_status
    • First observedget_search_state
    • First observedget_settings
    • First observedget_ui_state
    • First observedget_unread_scan_count
    • First observedlist_cloud_items
    • First observedlist_folder_contents
    • First observedlist_folders
    • First observedlist_incomplete_mails
    • First observedlist_mail_attachments
    • First observedlist_mail_cloud_jobs
    • First observedlist_mobile_devices
    • First observedlist_recent_scans
    • First observedmark_scan_as_read
    • First observedmobile_sync
    • First observedopen_document_external
    • First observedopen_in_apple_mail
    • First observedopen_in_finder
    • First observedpatch_settings_appearance
    • First observedpatch_settings_processing
    • First observedpatch_settings_search
    • First observedpatch_settings_sharing
    • First observedrefresh_license
    • First observedreindex_apple_mail
    • First observedreprocess_document
    • First observedrequest_trial
    • First observedrescan_folder
    • First observedretry_failed_mail_cloud_jobs
    • First observedretry_incomplete_mails
    • First observedreveal_mail_in_finder
    • First observedsearch_documents
    • First observedsetup_apple_mail
    • First observedtick_mail_cloud_worker
    • First observedui_dismiss_alert
    • First observedui_dismiss_popup
    • First observedui_get_filters
    • First observedui_get_page
    • First observedui_get_popups
    • First observedui_get_sort
    • First observedui_get_transcript
    • First observedui_get_zoom
    • First observedui_list_alerts
    • First observedui_list_items
    • First observedui_navigate
    • First observedui_screenshot
    • First observedui_search
    • First observedui_select_document
    • First observedui_set_filters
    • First observedui_set_page
    • First observedui_set_sort
    • First observedui_set_transcript
    • First observedui_set_zoom

TDQS

B3.3/5.0
Disambiguation3/5

While many tools have specific descriptions, there is some overlap between similar tools like get_processing_progress and get_processing_status, or get_mail_index_status and get_mail_full_index_status. The sheer number of tools (84) makes it harder for an agent to distinguish between them without careful analysis.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern in snake_case (e.g., delete_document, list_folders). There are minor deviations like get_mail_by_rowid vs get_mail_detail, but overall the naming is predictable and the verb prefixes (get_, list_, ui_, etc.) help organize the set.

Tool Count2/5

With 84 tools, this server has an excessive number for an MCP server. While the scope is broad (covering PDFs, Apple Mail, cloud sync, mobile, UI control, licensing), such a large tool surface overwhelms agents and makes tool selection inefficient. A more focused set of 15-30 tools would be more appropriate.

Completeness4/5

The tool set covers multiple domains comprehensively: document CRUD, folder management, mail indexing and retrieval, cloud sync, mobile pairing, UI state manipulation, and licensing. Minor gaps exist (e.g., no update_document metadata tool, no remove_folder tool beyond deletion from index), but the core workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP bridge for Distill — let Claude, Cursor, or any MCP client rename files based on AI content analysis. 9 tools for renaming, suggestions (preview), folder watching, history, and rule management. Five AI providers: Claude, OpenAI GPT-4o, Gemini, Ollama (local), Apple Intelligence. Bridge open-source (MIT), Distill app is commercial (pay-per-use, no subscription).
    9
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for FreezeText — OCR anything on your Mac screen from Claude, Cursor, or any MCP client. Freeze the screen and extract text via Apple Vision (videos, popups, protected PDFs), OCR a region or a base64 image, and manage a searchable capture history. 12 tools. Bridge open-source (MIT), FreezeText app is free.
    12
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that gives Claude and local LLMs access to Apple's on-device frameworks — Vision OCR, NSDataDetector, and Apple Intelligence FoundationModels. Everything runs on your Mac with zero data leaving.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A local MCP server that lets Claude, Cursor, Codex, or any MCP client work with Office documents on your Mac: evaluate spreadsheet formulas, read/write XLSX and PPTX, extract structured DOCX content, and merge/split/protect PDFs. 100% local, no network calls, no account. 14 tools.
    MIT

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/juergenkoller-software/pdf-content-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server