PDF Content Search MCP
PDF Content Search 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
macOS 12 (Monterey) or later
PDF Content Search app installed and running — get it here (one-time purchase €89.99, 30-day free trial, includes free iOS + Android scanner companion apps)
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-mcpUniversal binary (for shipping inside the app bundle):
swift build -c release --arch arm64 --arch x86_64Already 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-hereCursor / other MCP clients
Same pattern — stdio MCP server.
Environment variables
Variable | Default | Description |
| (none) | Bearer token matching the app's API Server token (required) |
|
| Port of the app's API server |
|
| Host to reach the app |
Protocol behavior
Newline-delimited JSON on stdin/stdout (MCP stdio transport).
Each line is POSTed to the app's
/mcpendpoint verbatim.The first response's
Mcp-Session-Idheader 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
-32001with 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.
About PDF Content Search
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.pdfFree 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
Bridge bugs: open an issue
App support: support@juergenkoller.software
Built by Juergen Koller Software GmbH.
Available Tools
84 toolsactivate_licenseA
Activate a license using license_key. Sensitive. Requires confirm=true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to execute this irreversible/sensitive action. | |
| license_key | Yes | License key to activate. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path to the folder to index. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to execute this irreversible/sensitive action. | |
| document_ids | Yes | List of document IDs to delete. |
TDQS
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.
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.
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.
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.
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.
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').
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | Enable or disable the cloud service. | |
| accept_conditions | No | Accept the cloud-service conditions (required before enabling). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 9-digit pairing code from the mobile device. | |
| confirm | Yes | Must be true to execute this irreversible/sensitive action. | |
| folder_path | No | Optional path of the shared folder to pair. Omit to use the first shared folder. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to execute this irreversible/sensitive action. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to execute this irreversible/sensitive action. | |
| document_id | Yes | Document ID to delete. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to execute this irreversible/sensitive action. | |
| folder_id | Yes | Folder ID to remove. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| document_ids | Yes | List of document IDs (max 100) | |
| include_metadata | No | Include file metadata (default true) | |
| include_ocr_text | No | Include OCR text per page (default true) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | Document ID (from search results) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Optional: limit to a single page index. | |
| document_id | Yes | Document ID. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Optional: specific page number (1-based). Omit for all pages. | |
| document_id | Yes | Document ID (from search results) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based, default 1) | |
| document_id | Yes | Document ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | Folder ID (from list_folders). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | Folder ID (from list_folders). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Attachment file name as listed by list_mail_attachments. | |
| message_id | Yes | RFC message-id (external_id) of the mail. | |
| save_to_path | No | Optional absolute path to write the file to. Recommended for large attachments to avoid huge base64 payloads. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rowid | Yes | MailFtsSqlite rowid of the mail. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| external_id | Yes | RFC message-id of the mail (external_id from get_mail_recent). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | RFC 2822 message-id, with or without angle brackets |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items, default 20, max 200 |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Settings category (default: all) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Optional state filter. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 50, max 500) | |
| offset | No | Offset for pagination (default 0) | |
| folder_id | Yes | Folder ID (from list_folders) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items, default 50, max 500. | |
| status | No | Optional filter; omit for all non-success records. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | RFC message-id (external_id) of the mail. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items, default 100, max 500. | |
| status | No | Optional filter; omit for all jobs. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | Yes | Scan item ID from list_recent_scans. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_path | No | Optional path of a connected folder to sync. Omit for all. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | Or: file path to open | |
| document_id | No | Document ID to open |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | RFC 2822 message-id, with or without angle brackets |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No | Or: file path to reveal | |
| document_id | No | Document ID to reveal |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | ||
| font_size | No | ||
| grid_view | No | ||
| accent_color | No | ||
| list_density | No | ||
| show_thumbnails | No | ||
| sidebar_visible | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ocr_enabled | No | ||
| ocr_quality | No | ||
| ocr_language | No | ||
| process_pdfs | No | ||
| process_images | No | ||
| auto_process_new | No | ||
| max_file_size_mb | No | ||
| thumbnail_quality | No | ||
| max_concurrent_tasks | No |
TDQS
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.
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.
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.
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.
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.
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_searchB
Update search settings. Accepted fields: case_sensitive, fuzzy_search, whole_word, max_results, search_in_filenames, highlight_matches, auto_search, snippet_length, exclude_patterns, min_query_length.
| Name | Required | Description | Default |
|---|---|---|---|
| whole_word | No | ||
| auto_search | No | ||
| max_results | No | ||
| fuzzy_search | No | ||
| case_sensitive | No | ||
| snippet_length | No | ||
| exclude_patterns | No | ||
| min_query_length | No | ||
| highlight_matches | No | ||
| search_in_filenames | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It only says 'Update' without disclosing side effects, persistence, or default behavior for omitted fields. Minimal transparency for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence efficiently listing all fields. It's front-loaded with the action, but could be structured with brief explanations per field. Still, it's concise without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 optional parameters, no output schema, and the tool's complexity, the description lacks details on return values, success indication, or scope of changes. It is incomplete for realistic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, requiring the description to explain parameters. It lists all 10 field names but provides no details on allowed values, constraints (e.g., min/max for integers), or format for exclude_patterns. This adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update search settings' specifying the verb (update) and resource (search settings). It distinguishes from sibling tools like patch_settings_appearance and patch_settings_processing by focusing on search-specific fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for modifying search settings but provides no explicit guidance on when to use this tool versus alternatives like patch_settings_appearance or get_settings. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch_settings_sharingC
Update mobile-sharing settings. Accepted fields: enabled, require_approval, share_name, max_devices, auto_accept_known, read_only, sharee_key.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| read_only | No | ||
| share_name | No | ||
| sharee_key | No | ||
| max_devices | No | ||
| require_approval | No | ||
| auto_accept_known | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force server sync, bypassing cache (default false) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| restart | No | If true, stop a running indexer task before starting a fresh one. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force reprocess even if currently processing (default false) | |
| document_id | Yes | Document ID to reprocess |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to execute this irreversible/sensitive action. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | Folder ID to rescan |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| external_id | Yes | RFC message-id of the mail to reveal. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20, max 100) | |
| query | Yes | Search query (min 3 characters) | |
| folders | No | Optional: folder IDs to limit search scope | |
| sort_order | No | Sort order (default: relevance) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| enable | No | Whether to enable indexing (default true). | |
| mail_root | No | Absolute path to the user's Mail folder. Defaults to ~/Library/Mail. | |
| clear_index | No | If true, wipe MailFtsSqlite and reset the cursor before starting. | |
| ocr_limit_mb | No | Attachment OCR size limit (25/50/100/200 MB). | |
| account_rowids | No | Optional: mailboxes.ROWID list to filter on. Empty/omit = all accounts. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dismiss_all | No | If true, dismiss all open alerts. | |
| button_index | No | Index of the alert button to click. | |
| button_title | No | Title of the alert button to click. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional: identifier of the popup to dismiss. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_screenshotA
Take a screenshot of the main application window. Returns base64-encoded PNG image.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_searchA
Trigger a search in the app UI. Sets the search text and initiates the search, returning the result count.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search text to enter in the app's search field |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that it sets search text, initiates search, and returns result count, but lacks details on side effects (e.g., clearing previous results, navigation impact). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys purpose and outcome with no unnecessary words. Front-loaded with function and includes return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 behavior and return value. It could mention that it works on the current view or triggers a new search, but overall fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter 'query' is already well-described in the input schema (100% coverage). Description adds that it sets search text and initiates search, which reinforces but does not add new semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (trigger a search), the resource (app UI), and what it returns (result count). It distinguishes from related siblings like 'search_documents' which likely query the database rather than interact with the UI.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 description implies it's for UI searches, but does not provide when-to-use/when-not-to-use or compare with siblings like 'search_documents' or 'get_search_state'.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | List index to select (0-based) | |
| document_id | No | Document ID to select |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | If true, clear all filters before applying. | |
| date_range | No | Date-range filter key. | |
| file_types | No | File-extension filters to apply. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Jump to a specific 1-based page. | |
| action | No | Relative page navigation. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order key, e.g. relevance / new2Old / old2New / a2z / z2a. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Transcript mode, e.g. split / searchResults. | |
| visible | No | Show or hide the transcript panel. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fit_mode | No | Fit mode, e.g. fitWidth / fitPage / actualSize. | |
| zoom_level | No | Absolute zoom level. |
TDQS
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.
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.
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.
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.
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.
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.
84 tool updates
v1.0.0- First observed
activate_license - First observed
add_folder - First observed
bulk_delete_documents - First observed
cancel_pending_mail_cloud_jobs - First observed
cleanup_stale_mail_meta - First observed
clear_mail_index - First observed
cloud_sync - First observed
confirm_mobile_pairing - First observed
deactivate_license - First observed
delete_document - First observed
delete_folder - First observed
disable_apple_mail - First observed
export_documents - First observed
get_app_status - First observed
get_cloud_status - First observed
get_document_metadata - First observed
get_document_ocr_rects - First observed
get_document_text - First observed
get_document_thumbnail - First observed
get_folder_processing_status - First observed
get_folder_stats - First observed
get_license_status - First observed
get_mail_attachment - First observed
get_mail_by_rowid - First observed
get_mail_detail - First observed
get_mail_full_index_status - First observed
get_mail_index_status - First observed
get_mail_mailboxes - First observed
get_mail_message_metadata - First observed
get_mail_recent - First observed
get_mobile_sync_status - First observed
get_processing_progress - First observed
get_processing_status - First observed
get_search_state - First observed
get_settings - First observed
get_ui_state - First observed
get_unread_scan_count - First observed
list_cloud_items - First observed
list_folder_contents - First observed
list_folders - First observed
list_incomplete_mails - First observed
list_mail_attachments - First observed
list_mail_cloud_jobs - First observed
list_mobile_devices - First observed
list_recent_scans - First observed
mark_scan_as_read - First observed
mobile_sync - First observed
open_document_external - First observed
open_in_apple_mail - First observed
open_in_finder - First observed
patch_settings_appearance - First observed
patch_settings_processing - First observed
patch_settings_search - First observed
patch_settings_sharing - First observed
refresh_license - First observed
reindex_apple_mail - First observed
reprocess_document - First observed
request_trial - First observed
rescan_folder - First observed
retry_failed_mail_cloud_jobs - First observed
retry_incomplete_mails - First observed
reveal_mail_in_finder - First observed
search_documents - First observed
setup_apple_mail - First observed
tick_mail_cloud_worker - First observed
ui_dismiss_alert - First observed
ui_dismiss_popup - First observed
ui_get_filters - First observed
ui_get_page - First observed
ui_get_popups - First observed
ui_get_sort - First observed
ui_get_transcript - First observed
ui_get_zoom - First observed
ui_list_alerts - First observed
ui_list_items - First observed
ui_navigate - First observed
ui_screenshot - First observed
ui_search - First observed
ui_select_document - First observed
ui_set_filters - First observed
ui_set_page - First observed
ui_set_sort - First observed
ui_set_transcript - First observed
ui_set_zoom
TDQS
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.
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.
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.
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
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
Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.
- docs2mcpOAuthcom.docs2mcp
Query your own PDFs and documents from any MCP client. Every answer cites the page it came from.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP 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).92MIT
- AlicenseAqualityDmaintenanceMCP 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.121MIT
- AlicenseNot gradedqualityCmaintenanceMCP 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.1MIT
- AlicenseNot gradedqualityAmaintenanceA 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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