Apdf — PDF Tracking & Analytics
Server Details
PDF engagement layer for apps and agents: tracking links, read analytics, and a full PDF toolset.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.9/5 across 45 of 45 tools scored. Lowest: 3.1/5.
Each tool targets a distinct operation (document management, PDF manipulation, automation, analytics, etc.) with clear boundaries, making it easy for an agent to select the correct one.
All tool names follow a strict lowercase-with-hyphens pattern and use consistent verb-noun phrasing (e.g., 'create-document', 'list-documents', 'add-pdf-security'), ensuring predictability.
At 45 tools, the server far exceeds the recommended 3-15 range for a well-scoped set. While the coverage is comprehensive, the high number may overwhelm agents and suggests insufficient consolidation.
The tool surface covers the full lifecycle of documents and PDFs—creation, retrieval, update, deletion, archiving, security, OCR, splitting, merging, automation, analytics, and more—with no obvious gaps.
Available Tools
45 toolsactivate-automationActivate AutomationAIdempotentInspect
Activate (enable) an automation so it fires again. Counts against the active-automations limit. Reversible via "deactivate-automation".
| Name | Required | Description | Default |
|---|---|---|---|
| automation_id | Yes | The id of the automation to activate. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive behavior. Description adds value by alerting about active-automation limits, a behavioral constraint not in 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?
Two sentences, no waste, key information front-loaded. Highly concise and 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 required param and no output schema, the description covers purpose, effect (limit), and reversibility. 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?
Schema covers the single parameter fully (100% coverage). Description does not add further parameter meaning, earning 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 action 'activate (enable)' and the resource 'automation'. Immediately distinguishes from siblings like 'deactivate-automation' by noting reversibility.
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 counting against a limit and reversibility via a specific sibling, providing context for when to use. Lacks explicit 'when not to use' but still strong for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
activate-document-linkActivate Document LinkAIdempotentInspect
Activate (enable) a recipient link by its token. Reversible via "deactivate-document-link".
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The token of the link to activate. | |
| doc_id | Yes | The public id of the document the link belongs to. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive behavior. The description adds that the action is reversible, providing useful behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. All key information is front-loaded (action, resource, reversibility).
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 no output schema, the description adequately covers the purpose and reversal. It could mention what happens when activated (e.g., link enabled for signers), but given the simplicity, it's 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%, and the description does not add significant additional meaning to the parameters beyond what the schema already provides. The mention of 'by its token' aligns with the schema but adds no new semantics.
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 (activate/enable) and the resource (recipient link by token). It distinguishes from the sibling 'deactivate-document-link' by mentioning reversibility. However, it could more explicitly tie the link to a document, though schema provides that context.
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 (activate a link) and mentions the alternative 'deactivate-document-link' for reversal. It doesn't explicitly state when not to use, but the purpose is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add-pdf-securityAdd PDF SecurityAInspect
Add password-based security restrictions (owner / optional user password) to a PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF file to protect. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. | |
| user_password | No | Optional user password required to open the document. | |
| owner_password | Yes | Owner password used for full-access permissions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond the basic function. There is no mention of whether it modifies the file in-place, returns a new file, or what happens to existing security. Annotations only provide destructiveHint=false, which confirms non-destructive nature but the description adds little 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?
The description is a single sentence that is concise, front-loaded with the action and resource, and contains no unnecessary 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 simple nature of the tool (5 parameters, no output schema), the description is adequate but could be improved. It does not mention return value or side effects, but for a straightforward security-add operation, it minimally covers the essential 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% with descriptions for all parameters. The description adds a high-level summary but does not provide additional meaning beyond what is already in the input 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 adds password-based security restrictions (owner/optional user password) to a PDF. It uses a specific verb 'Add' with resource 'PDF security', and the description distinguishes it from the sibling tool 'remove-pdf-security'.
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. It only states what the tool does, leaving the agent to infer usage context. No mention of when not to use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive-documentArchive DocumentAIdempotentInspect
Archive a document by its public id. Archived documents stop counting toward the workspace's tracked-documents quota and become inert. Reversible via "unarchive-document".
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The public id of the document to archive. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and non-destructive; description adds that archived documents stop counting toward quota and become inert, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences: first states purpose, second explains consequences and reversal. No superfluous 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 one parameter and no output schema, the description covers the action, effect, and reversibility. Could optionally mention pre-conditions like document existence, but not necessary.
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 doc_id. The description adds no new parameter-level information beyond what the schema provides, meeting baseline but not exceeding.
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 'Archive', resource 'document', method 'by its public id'. Additionally explains the effect on quota and inertness, distinguishing it from sibling tools like delete-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?
Explicitly mentions reversibility via 'unarchive-document', providing a clear alternative. However, does not compare to other siblings like delete-document or deactivate-document-link, which could further guide usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check-job-statusCheck Job StatusARead-onlyInspect
Check the status (and result, if any) of an asynchronous api job by its id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of the api job to inspect. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true in annotations, the bar is lower. The description adds value by stating 'and result, if any', indicating that the tool may return both status and optional result. This goes beyond the annotation and clarifies what to expect from the response.
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 with no wasted words. It front-loads the key action and resource, making it immediately clear what the tool does.
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?
While the description is adequate for a simple 1-parameter tool, it lacks details about return values (e.g., possible status codes, result format) since there is no output schema. The phrase 'status (and result, if any)' hints at the response but does not fully specify what the agent should expect.
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 the 'id' parameter well. The description does not add any additional meaning or context beyond what the schema provides, meeting 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 'Check' and the resource 'status (and result, if any) of an asynchronous api job by its id'. It explicitly mentions the key distinguishing factor (asynchronous job status) which sets it apart from all sibling tools that deal with documents and 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 does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternative tools. It implies usage by requiring a job id, but lacks contextual cues about prerequisites or scenarios where this tool is appropriate versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compress-pdf-fileCompress PDF FileAInspect
Compress a PDF file to reduce its file size. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF file to compress. | |
| webhook_url | No | Callback URL invoked when the async job finishes. Omit and poll "check-job-status" instead if no callback endpoint is available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses that compression runs asynchronously and returns a job id, which is beyond the annotations (only destructiveHint: false). No contradiction. Useful for agent to understand 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 sentences, no filler. Purpose is front-loaded, and async details follow immediately. 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 2 params, no output schema, and async flow, the description adequately covers what the tool does and how to handle results. Could mention the job status response format, but not required.
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 description adds context: for file, it says 'publicly reachable URL' (slightly redundant); for webhook_url, it clarifies optionality and alternative polling. Adds value 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 'Compress a PDF file to reduce its file size.' It identifies the specific verb and resource, and distinguishes from sibling tools like split, merge, or convert.
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?
Explains async behavior and how to handle it: poll 'check-job-status' or use 'webhook_url'. Provides clear guidance on usage, though lacks explicit when-not-to-use or alternatives for simple compression.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert-pdf-to-imageConvert PDF to ImageAInspect
Render PDF pages as images (PNG/JPG/...) at a given DPI. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback.
| Name | Required | Description | Default |
|---|---|---|---|
| dpi | No | DPI between 1 and 300. | |
| file | Yes | Publicly reachable URL of the PDF file to render. | |
| pages | No | Page-range expression. Omit to render all pages. | |
| color_mode | No | Color mode for the output images. | |
| image_type | Yes | Output image format. | |
| webhook_url | No | Callback URL invoked when the async job finishes. Omit and poll "check-job-status" instead if no callback endpoint is available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (only destructiveHint: false), so the description carries the burden. It discloses that the tool always runs asynchronously and returns a job ID, which is critical behavioral information not present in annotations. It also implies the file must be a publicly reachable URL. This adds significant value beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, each adding crucial information. The first sentence states the core action and configurable aspects (image types, DPI). The second sentence explains the async pattern and result retrieval. No extraneous 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 complexity (6 params, async, no output schema), the description is well-rounded. It explains the input requirements (public URL for file), the async behavior, and the two methods to retrieve results. It does not detail error cases or job status response format, but the presence of a dedicated check-job-status tool mitigates this gap. The description is complete enough for correct invocation.
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 by guidelines the baseline is 3. The description does not repeat parameter details but instead focuses on overall behavior. The schema already adequately explains each parameter (e.g., dpi range, image_type enum, pages expression, webhook_url usage), so no additional parameter information is needed from the description.
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 function: converting PDF pages to images (PNG/JPG/...) at a given DPI. It uses a specific verb ('Render') and resource ('PDF pages as images'), immediately distinguishing it from sibling tools like compress-pdf-file or read-pdf-content. The async behavior and job ID return are also explicitly mentioned.
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 guidance on how to handle the async result: either poll check-job-status or provide a webhook_url. This tells the agent exactly how to use the tool correctly. While it doesn't explicitly compare to sibling tools, the purpose is distinct enough that usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert-pdf-with-ocrConvert PDF with OCRAInspect
Run OCR over a scanned PDF and return a searchable PDF with embedded text. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the (scanned) PDF file to OCR. | |
| webhook_url | No | Callback URL invoked when the async job finishes. Omit and poll "check-job-status" instead if no callback endpoint is available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the minimal annotation (destructiveHint: false), the description adds crucial behavioral context: async execution, job id return, and the need for polling or a webhook callback. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and behavior, zero wasted 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?
Given 2 parameters and no output schema, the description fully covers the async workflow, job id mechanism, and callback vs polling options. No gaps for an agent to act correctly.
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 adds value by tying 'webhook_url' to the async callback behavior, but does not provide additional syntax or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run OCR over a scanned PDF and return a searchable PDF with embedded text.' It uses a specific verb ('Run OCR') and resource ('scanned PDF'), and effectively distinguishes it from siblings like 'read-pdf-content-with-ocr' (which returns text) and 'convert-pdf-to-image'.
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 that the tool runs asynchronously and returns a job id, then instructs to poll 'check-job-status' or provide 'webhook_url' for results. This provides clear usage guidance, though it lacks explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-automationCreate AutomationAInspect
Create a when/filter/then rule that posts reader events to a webhook. The automation starts out active.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable name for the automation. | |
| scope | No | Which documents to watch. Defaults to "all". | |
| events | Yes | Reader events that trigger the automation, matched with OR. Pass "*" as the only entry to trigger on every event. | |
| doc_ids | No | Public ids of the documents to watch. Required when "scope" is "specific", ignored otherwise. | |
| conditions | No | Filters that must all pass before the webhook fires. Not available for an "*" automation. | |
| webhook_url | Yes | URL that receives the POST request when the automation fires. | |
| webhook_headers | No | Additional headers for the webhook request, as header name => value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavior: 'The automation starts out active.' This adds value beyond the annotations (only destructiveHint=false). No contradictions. Could mention if automation is immediately triggered, but still good.
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, highly efficient. First sentence states purpose, second adds important behavioral detail. 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 complexity (7 parameters, nested objects, no output schema), the description is somewhat minimal. Does not explain return values or side effects. Sufficient for simple creation but lacks depth.
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. Description summarizes the rule structure but does not add new details beyond what the schema already provides for 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?
Specifically describes the tool's function: 'Create a when/filter/then rule that posts reader events to a webhook.' Clearly distinguishes from sibling tools like activate-automation, deactivate-automation, delete-automation.
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 setting up an automation that sends webhook based on reader events. Lacks explicit guidance on when not to use or mention of alternatives like updating an existing automation. Sufficient but not thorough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-documentCreate DocumentAInspect
Create a trackable document from a PDF URL.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF to convert to a trackable document. | |
| name | Yes | Human-readable name for the document. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=false, so the description only adds the source constraint (PDF URL). This is adequate for a creation tool, but it does not mention side effects like fetching the PDF or creating 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?
Single sentence with no filler words. Every word is necessary and contributes to the 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?
Despite low complexity (2 params, no output schema), the description omits return value information and prerequisites like authentication or PDF accessibility. This forces the agent to guess or test.
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 descriptions are clear and cover both parameters (100% coverage). The main description adds no additional parameter meaning beyond repeating 'trackable document'.
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 ('Create') and the resource ('a trackable document') with the specific source ('from a PDF URL'). This distinguishes it from sibling tools like 'create-document-link' or 'delete-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 provides no guidance on when to use this tool over alternatives, nor does it specify prerequisites or exclusions. The agent must infer usage from the name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-document-linkCreate Document LinkAInspect
Create a new recipient link for a document.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Recipient name for the link. | |
| No | Optional recipient email address. | ||
| doc_id | Yes | The public id of the document to create the link for. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-destructive (destructiveHint false). Description adds that it creates a new link, consistent with annotation. However, no further behavioral traits are disclosed (e.g., duplicate handling, default activation state, rate limits). Minimal added value beyond annotation.
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: one short sentence that communicates the essential purpose. No superfluous 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 tool simplicity (3 params, no output schema), the description is somewhat adequate but lacks mention of the response or default behavior (e.g., link activation state). Could be more complete for a creation 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?
Input schema has 100% description coverage with clear descriptions for each parameter. The tool description does not add any additional meaning beyond what the schema provides. 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 'Create' and the resource 'recipient link for a document'. It is specific and distinguishes from sibling tools like activate, deactivate, delete, and list document links.
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. For example, it doesn't mention prerequisites like document existence or that links might need activation afterwards. Sibling tools exist but no usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-pdf-fileCreate PDF FileAInspect
Create a PDF from the given HTML and return its hosted URL. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | HTML to convert to a PDF. | |
| unit | No | Unit for width/height/margins. | |
| scale | No | Render scale, between 0.1 and 2. | |
| width | No | Custom page width (requires height). | |
| footer | No | Footer HTML template. | |
| format | No | Page format. | |
| header | No | Header HTML template. | |
| height | No | Custom page height (requires width). | |
| margin_top | No | Top margin. | |
| margin_left | No | Left margin. | |
| orientation | No | Page orientation. | |
| webhook_url | No | Callback URL invoked when the async job finishes. Omit and poll "check-job-status" instead if no callback endpoint is available. | |
| margin_right | No | Right margin. | |
| margin_bottom | No | Bottom margin. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses async behavior, returning a job id, and callback mechanism. Annotations only have destructiveHint: false, and the description adds context about polling and webhooks, which is beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences cover purpose and async behavior with no fluff. 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?
With 14 parameters, no output schema, and async behavior, the description explains the key behavioral context. It could detail the job id return, but the parameter descriptions and sibling check-job-status tool fill 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 descriptions for all 14 parameters. The tool description does not add significant meaning beyond the schema; it only mentions HTML and async options. 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 creates a PDF from HTML and returns a hosted URL. This distinguishes it from sibling tools like compress-pdf-file or merge-pdf-files, which handle different PDF operations.
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 states the tool runs asynchronously and guides the agent to either poll check-job-status or provide a webhook_url. It does not explicitly state when not to use it, but the guidance is clear for common usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deactivate-automationDeactivate AutomationAIdempotentInspect
Deactivate (pause) an automation so it stops firing. The rule and its execution history are kept. Reversible via "activate-automation".
| Name | Required | Description | Default |
|---|---|---|---|
| automation_id | Yes | The id of the automation to deactivate. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive. Description adds that rule and execution history are kept, and that action is reversible. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with action and effect. 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?
For a simple idempotent, non-destructive tool with one parameter and no output schema, the description fully covers what an agent needs: action, scope, persistence, and reversibility.
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 (automation_id) with full schema description coverage (100%). Description does not add meaning beyond schema, but schema itself is clear. 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?
Clear verb 'deactivate' with resource 'automation'. Specifies effect: stops firing, keeps rule and history. Distinguishes from sibling 'activate-automation' by mentioning reversibility.
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?
States tool is for pausing automation without losing history, and explicitly references alternative 'activate-automation' for re-enabling. Could include more context on when not to use, but sufficient for this simple operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deactivate-document-linkDeactivate Document LinkAIdempotentInspect
Deactivate (disable) a recipient link by its token. Reversible via "activate-document-link".
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The token of the link to deactivate. | |
| doc_id | Yes | The public id of the document the link belongs to. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds valuable context that the action is reversible via another tool, aligning with annotations without contradicting them.
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, efficiently conveying the tool's purpose and key behavior.
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 deactivate action, the description is sufficient. It doesn't explain return values, but with no output schema, this is acceptable given the tool's simplicity and the context provided by annotations and 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 description coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond the schema, meeting the baseline.
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 (deactivate/disable) on a specific resource (recipient link) identified by token, and distinguishes it from the sibling 'activate-document-link' by noting reversibility.
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 when to use it (to deactivate a link) and implies an alternative (activate-document-link for reactivation). However, it doesn't clarify when to use deactivate vs. delete-document-link, leaving ambiguity for permanent removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-automationDelete AutomationADestructiveInspect
Delete an automation and its execution history. To keep the rule and only stop it from firing, use "deactivate-automation".
| Name | Required | Description | Default |
|---|---|---|---|
| automation_id | Yes | The id of the automation to delete. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive hint; description adds that execution history is also deleted. Could mention irreversibility or permissions but adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded, 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?
Given low complexity (one parameter, no output schema), the description covers the effect and provides an alternative, making it complete 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?
Schema coverage is 100%, so the parameter is already described in schema. Description does not add additional semantics beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes an automation and its execution history, differentiating it from deactivate-automation which only stops firing but keeps the rule.
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 tells when to use this tool versus the alternative deactivate-automation, providing clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-documentDelete DocumentADestructiveInspect
Delete a document (and its underlying PDF file) by its public id.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The public id of the document to delete. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that both the document and its underlying PDF file are deleted, which is valuable beyond the destructiveHint annotation. No contradiction with annotations. It could be improved by stating irreversibility, but the annotation already signals danger.
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 with no wasted words. It front-loads the action and key details immediately.
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 destructive action with one parameter and no output schema, the description provides sufficient context about what is deleted. It could mention permanence or the response, but the annotation covers danger.
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 covers 100% of parameters with a clear description of doc_id. The tool description adds no extra meaning beyond 'by its public id'. Given complete schema coverage, this is adequate but not exceptional.
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 explicitly states the action (delete), the resource (document), and additional context (underlying PDF file, by public id). It clearly distinguishes from siblings like 'archive-document' which likely moves rather than deletes.
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. However, the sibling list includes 'archive-document' and 'make-document-private', which are non-destructive alternatives, but the description does not mention them or specify that deletion is permanent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-document-linkDelete Document LinkADestructiveInspect
Delete a document link by its token.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The token of the link to delete. | |
| doc_id | Yes | The public id of the document the link belongs to. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'destructiveHint: true' already signals mutation, and the description repeats the deletion action. No additional behavioral details are provided (e.g., irreversibility, side effects), but there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no unnecessary words. Earns its place by being brief and direct.
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 delete operation with complete schema and annotations, the description is sufficient. It does not need to explain return values as no output schema exists. Minor gap: no mention of authorization requirements.
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 two parameters are fully documented in the schema. The description adds no extra meaning beyond 'by its token', which is already implied by the token parameter description.
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') and the resource ('document link') with the identifier ('by its token'). It distinguishes from siblings like 'deactivate-document-link' which implies a state change rather than deletion.
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., 'deactivate-document-link'). The description does not mention prerequisites, limitations, 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.
delete-pdf-pagesDelete PDF PagesBInspect
Delete a subset of pages in a PDF and return the resulting PDF without those pages.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF file to delete pages from. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| pages | Yes | Page-range expression of pages to delete. | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation indicates destructiveHint=false, but the description says 'Delete a subset of pages', which implies modification. It does not clarify whether the original file is preserved or modified, nor does it explain behavior around async or job id return. The description adds minimal behavioral context beyond the annotation.
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 concise sentence with no wasted words. However, it is extremely brief and could be expanded slightly to include usage guidance without harming 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?
Given the tool has 4 parameters and no output schema, the description is too short and does not cover key aspects like async behavior, return format, or page-range examples. It feels incomplete for an agent to use correctly without additional 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 baseline is 3. The description adds no additional meaning to parameters beyond what the schema already provides. It does not explain the page-range expression format or provide examples.
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'), the resource ('a subset of pages in a PDF'), and the result ('return the resulting PDF without those pages'). It effectively distinguishes from sibling tools like 'extract-pdf-pages' and 'split-pdf-file' by focusing on removal rather than extraction or splitting.
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 like 'extract-pdf-pages' or 'split-pdf-file'. There is no mention of prerequisites, context, or when not to use it, leaving an agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duplicate-automationDuplicate AutomationAInspect
Copy an automation with its trigger, conditions, webhook and documents. The copy is named after the original with "(Copy)" appended and starts out active.
| Name | Required | Description | Default |
|---|---|---|---|
| automation_id | Yes | The id of the automation to copy. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation already indicates non-destructive. Description adds naming convention ('(Copy)' appended) and initial active state. However, lacks details on permissions required or behavior if original is deleted.
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 redundancy. Front-loaded with action. Every 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 the simple tool with one parameter and high schema coverage, the description covers the key behavior. However, no mention of return value or error scenarios, though not required since no output schema. 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 description coverage is 100% for the single parameter, and the description does not add additional semantics beyond 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?
Description clearly states 'Copy an automation' with specific details on what is included (trigger, conditions, webhook, documents). Distinguishes from sibling tools like create-automation or activate-automation.
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?
Description implies usage for duplicating an automation but does not explicitly state when to use this tool vs alternatives like create-automation or deactivate-automation. No when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract-pdf-pagesExtract PDF PagesAInspect
Extract a subset of pages from a PDF and return the result as a new PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF file to extract from. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| pages | Yes | Page-range expression. Digits, comma, dash, "r" (reverse), "z" (last). | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a non-destructive operation by stating extraction and returning a new PDF, consistent with the destructiveHint=false annotation. However, it does not disclose additional behaviors such as failure modes, URL constraints, or the relationship between async and synchronous modes beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, precise sentence (14 words) that states the core functionality immediately. Every word is essential, and the structure 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?
Without an output schema, the description explains the return as 'a new PDF', which is sufficient. The 4 parameters are fully documented in the schema. The description adequately covers the tool's purpose and result, though it omits nuances like the job ID return for async calls (covered in schema). Overall, it is complete enough for a tool with good schema coverage.
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 4 parameters with descriptions. The tool description does not add any extra meaning beyond the schema, meeting the baseline of 3. No additional parameter context 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 action ('Extract a subset of pages'), the resource ('from a PDF'), and the output ('return the result as a new PDF'). It distinguishes from sibling tools like delete-pdf-pages and split-pdf-file by specifying extraction of a subset.
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 no guidance on when to use this tool versus alternatives, nor does it state prerequisites or conditions. It only states the basic function without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-automationGet AutomationARead-onlyInspect
Get a single automation by its id, including its trigger, conditions and webhook action.
| Name | Required | Description | Default |
|---|---|---|---|
| automation_id | Yes | The id of the automation to fetch. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. Description adds context about returned fields but doesn't disclose rate limits or auth. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and parameters included. Every word adds value; 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?
Given no output schema, description adequately explains output content. For a simple read with one parameter, it's nearly complete. Slightly lacking mention of potential error conditions.
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%; description adds no new meaning beyond the schema's parameter description. 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 it retrieves a single automation by ID, specifying included components (trigger, conditions, webhook action). Distinguishes from sibling 'list-automations' which returns multiple.
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 fetching a specific automation, but no explicit guidance on when to use alternatives (e.g., list-automations for multiple) or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-documentGet DocumentARead-onlyInspect
Get a single document by its public id.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The public id of the document to fetch. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, signaling it's a safe read. The description adds 'by its public id,' which clarifies the key constraint. However, it doesn't disclose behavior like error responses or if the document must exist. With annotations covering safety, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose. No wasted words; 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 fetch tool with one parameter and read-only annotations, the description is sufficient. It covers the core functionality. A minor improvement could mention that it returns the full document, but it's not essential given the 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?
The input schema has 100% coverage for the single parameter 'doc_id,' with a clear description. The tool description adds no further meaning 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?
Description clearly states 'Get a single document by its public id.' It specifies the verb ('get'), resource ('document'), and the unique identifier ('public id'). This distinguishes it from sibling tools like list-documents (multiple) and create-document (write).
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 one document by ID, but does not provide explicit guidance on when to use this versus alternatives (e.g., list-documents for bulk). No when-not-to-use or exclusion advice 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-analyticsGet Document AnalyticsARead-onlyInspect
Get aggregate KPIs (sessions, viewers, completion rate, downloads, ...) for a document.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The public id of the document to read analytics for. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates a safe read operation. The description adds detail about the type of data returned (KPI list) but does not disclose additional behavioral aspects like performance, permissions, or data freshness.
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-formed sentence that efficiently conveys the tool's purpose without 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?
With no output schema, the description partially compensates by listing example KPIs, but it does not specify the exact structure of the response, leaving the agent to infer 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?
Schema coverage is 100%, and the description does not add extra meaning beyond the schema's doc_id description. The parameter is straightforward, 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?
The description clearly states the tool retrieves aggregate KPIs for a document, listing examples like sessions, viewers, and completion rate. This distinguishes it from sibling tools like get-document (metadata) and get-document-session (individual session 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?
The description implies usage for overall document analytics by specifying 'aggregate KPIs', but it does not explicitly state when to use this tool over siblings (e.g., get-document-session for per-session details) or 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-sessionGet Document SessionARead-onlyInspect
Get full detail (events, metrics, page-by-page breakdown) for a single viewing session.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The public id of the document the session belongs to. | |
| session_id | Yes | The id of the session to fetch. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true; description adds context about returned content (events, metrics, page-by-page). Sufficient for a read-only tool, though no mention of pagination or limits.
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 details, no waste. Efficiently communicates purpose and scope.
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 retrieval tool with strong annotations and schema. Description covers return content, but no output schema means more context could help, yet it's 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?
Schema coverage is 100% with descriptions for both parameters; description adds no extra parameter details, 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?
The description clearly states the action 'Get full detail...' and lists specific contents (events, metrics, page-by-page breakdown), distinguishing it from siblings like list-document-sessions and get-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?
No explicit guidance on when to use vs alternatives, but the description implies it's for detailed session info. Schema requirements (doc_id, session_id) are clear, but no when-not or alternative mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-automation-executionsList Automation ExecutionsARead-onlyInspect
List all automation executions. Each entry includes the matched event, the payload sent and the endpoint response. Supports paging via "page" and "per_page".
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | The page number to retrieve (1-based). | |
| per_page | No | Number of items per page (max 100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true; description adds that it lists executions with details and supports paging. No contradiction, and the additional context is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action, and every sentence adds value. 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 simple list operation with two parameters and clear annotations, the description is complete: it states what is returned and paging behavior. No output schema but the description covers return details adequately.
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-described in the schema. The description only restates that paging is supported, adding no 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?
Clearly states 'List all automation executions' with specific verb and resource, and distinguishes from sibling tools like 'list-automations' by specifying what each entry includes (matched event, payload, endpoint response).
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 for use (listing automation executions with paging) but lacks explicit when-to-use or when-not-to-use guidance and does not name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-automationsList AutomationsARead-onlyInspect
List all automations. Supports paging via "page" and "per_page".
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | The page number to retrieve (1-based). | |
| per_page | No | Number of items per page (max 100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the read-only behavior is known. The description adds paging behavior but does not disclose other traits like default sorting, error handling, or performance characteristics.
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, no redundant words, and front-loads the 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?
For a simple list tool with two optional parameters, the description covers the essential functionality. However, it omits what the response format looks like (e.g., list of automation objects), which could be helpful 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% with detailed parameter descriptions, so the description adds minimal value beyond naming the parameters. It mentions paging but does not explain semantics beyond what the 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 verb 'List' and resource 'automations', making the purpose unambiguous. It distinguishes from the sibling 'list-automation-executions' by focusing on automations themselves.
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 like 'list-automation-executions' or other list tools. The description does not specify prerequisites or context for paging.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-document-annotationsList Document AnnotationsARead-onlyInspect
List annotations for a document. Supports paging via "page" and "per_page".
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | The page number to retrieve (1-based). | |
| doc_id | Yes | The public id of the document whose annotations to list. | |
| per_page | No | Number of items per page (max 100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, consistent with description. Description adds paging behavior but does not disclose other behavioral traits like response format 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?
Very concise single sentence stating purpose and key feature. Could be slightly expanded for clarity but 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?
Lacks output schema, and description does not mention return structure (e.g., list of annotation objects). Adequate for simple list endpoint but could be more 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?
All parameters have descriptions in the schema (100% coverage). The description adds little beyond repeating that paging is supported, which is already evident from 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?
Clearly states the action ('List annotations') and the target resource ('for a document'). Distinguishes from siblings as it's the only tool specifically about annotations.
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. The description is straightforward but lacks guidance on alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-document-form-submissionsList Document Form SubmissionsBRead-onlyInspect
List form submissions for a document. Supports paging via "page" and "per_page".
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | The page number to retrieve (1-based). | |
| doc_id | Yes | The public id of the document whose form submissions to list. | |
| per_page | No | Number of items per page (max 100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true, indicating a safe read operation. The description adds that it supports paging, but this is already detailed in the schema. No additional behavioral traits (e.g., error handling, default returns) are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and conveys the core purpose and paging feature concisely. It is front-loaded with the main verb and resource, though some might argue it is slightly terse.
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 3 parameters with full schema coverage and annotations for safety, the description is adequate but does not explain return values or error conditions. Since there is no output schema, a brief note on what is returned 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%, so the baseline is 3. The description mentions paging via 'page' and 'per_page,' which mirrors the schema descriptions, adding no new meaning.
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 'List form submissions for a document,' specifying the verb 'List' and the resource 'form submissions for a document.' This distinguishes it from sibling tools like 'list-document-annotations' and 'list-document-links'.
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 no guidance on when to use this tool versus alternatives (e.g., other list tools). It only states its basic function without mentioning prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-document-linksList Document LinksARead-onlyInspect
List all recipient links for a document. Supports paging via "page" and "per_page".
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | The page number to retrieve (1-based). | |
| doc_id | Yes | The public id of the document whose links to list. | |
| per_page | No | Number of items per page (max 100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true; description adds paging support context but omits return format or any behavioral details 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 concise sentences, front-loaded with purpose, no filler 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 list tool with readOnlyHint, provides minimal but adequate info. Lacks description of return values (e.g., array format, pagination metadata).
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 all parameters described. The description merely restates paging support without adding new 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?
Clearly states 'List all recipient links for a document' with specific verb and resource. Differentiates from siblings like list-documents and list-document-annotations.
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. Does not mention alternatives like activate-document-link or delete-document-link.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-documentsList DocumentsARead-onlyInspect
List documents. Returns active documents by default; pass "status" to include archived. Supports paging via "page" and "per_page".
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | The page number to retrieve (1-based). | |
| status | No | Filter by archive state. "active" (default) hides archived documents, "archived" returns only archived, "all" returns both. | active |
| per_page | No | Number of items per page (max 100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which is consistent. Description adds behavioral context: returns active by default, supports paging, and status filter. No contradictions or hidden traits disclosed.
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 that are dense with information: default behavior, status filter, paging parameters. No redundancy or 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 list tool with no output schema, the description covers core functionality: defaults, filtering, paging. Missing details like sorting or error handling, but not critical for basic usage.
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 covers all parameters with descriptions (100% coverage). Description adds value by explaining the default behavior of returning active documents and clarifying that 'status' is for filtering archive state, complementing the schema's enum descriptions.
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 'List documents' and distinguishes from siblings like 'get-document' (single document) and 'list-document-annotations'. It specifies default behavior (active documents) and key filters (status, paging).
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 for when to use the 'status' and paging parameters, but does not explicitly exclude alternative tools or give when-not-to-use guidance. However, the context is sufficient for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-document-sessionsList Document SessionsARead-onlyInspect
List viewing sessions for a document with per-session metrics. Supports paging via "page" and "per_page".
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | The page number to retrieve (1-based). | |
| doc_id | Yes | The public id of the document whose sessions to list. | |
| per_page | No | Number of items per page (max 100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description only needs to add behavioral context. It mentions metrics and paging, but does not detail what metrics are included, whether sessions are active/historical, 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 short, clear sentences. No wasted words. The description is front-loaded with the main action and includes essential paging 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?
Given no output schema and a simple list operation, the description covers the core functionality (listing sessions with metrics and paging). It could mention whether sessions are filterable by date or status, but overall adequate for a list-resource tool with good annotations.
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 three parameters (page, doc_id, per_page). The description adds no additional meaning beyond the schema, which is already clear. 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 lists viewing sessions for a document with per-session metrics and supports paging. This distinguishes it from other list tools like list-documents (which lists documents) and list-document-links (which lists shareable links).
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 listing sessions with paging, but does not provide explicit guidance on when to use this tool versus alternatives like get-document-session or list-document-annotations. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make-document-privateMake Document PrivateAIdempotentInspect
Make a document private by its public id, so it only opens through a valid recipient link. Reversible via "make-document-public".
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The public id of the document to make private. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive. The description adds context about the resulting access restriction (valid recipient link) and reversibility, going beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, includes reversibility. No 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?
The tool is simple; description covers purpose, effect, and reversibility. It does not mention error cases or prerequisites, but given schema and annotations, it is largely 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% with one parameter well-described. The description does not add additional meaning beyond 'by its public id', so baseline 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 'Make' and the resource 'document private', specifying it operates by public id. It distinguishes from the sibling 'make-document-public' by noting reversibility.
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 explains the effect (opens only through valid recipient link) and mentions reversibility via a sibling tool, providing clear context for when to use. However, it does not explicitly state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make-document-publicMake Document PublicADestructiveIdempotentInspect
Make a document public by its public id, so it can be viewed without a recipient link. Reversible via "make-document-private".
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The public id of the document to make public. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the key behavioral insight that the action is reversible, which complements the annotations (idempotentHint: true, destructiveHint: true). However, it does not discuss permissions, side effects, or other behaviors beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that efficiently convey the action, how to perform it, the result, and reversibility. Every 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?
For a simple tool with one parameter and no output schema, the description fully explains the effect and how to reverse it, meeting all contextual needs.
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% for the single parameter (doc_id). The description does not add significant new meaning beyond the schema's description of the parameter.
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 action (make document public), the method (by public id), and the effect (viewable without recipient link). Distinguishes from siblings by mentioning reversibility via 'make-document-private'.
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 for when to use this tool (to make a document publicly viewable) and mentions the reverse tool (make-document-private). Does not explicitly exclude alternatives like activate-document-link, but the purpose is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge-pdf-filesMerge PDF FilesBInspect
Merge multiple PDF files (optionally limited to a page-range each) into a single PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| files | Yes | Ordered list of PDFs to merge. Each item: { "file": URL, "pages": optional page-range }. | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate non-destructive behavior. The description does not disclose limitations, error handling, or result format. For a tool with sparse annotations, more detail is needed.
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 at 15 words, but could benefit from including the result format or example usage. No unnecessary 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, the description fails to explain the return value (likely a merged PDF URL). It also omits error cases and limits, making it incomplete 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?
Schema coverage is 100%, so the description adds no new parameter meaning beyond what the schema already 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 merges multiple PDFs into one, with optional page-range limits. This distinguishes it from sibling tools like split-pdf-file or extract-pdf-pages.
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 combining PDFs but provides no guidance on when to choose this tool over alternatives, nor does it mention prerequisites or async vs. sync usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overlay-pdf-pagesOverlay PDF PagesAInspect
Overlay another PDF on top of pages of a base PDF (e.g. for watermarks above content).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Page-range expression in the overlay PDF to take from. | |
| file | Yes | Publicly reachable URL of the base PDF file. | |
| from | No | Page-range expression in the base PDF to overlay onto. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| repeat | No | Page-range expression of overlay pages to repeat. | |
| overlay | Yes | Publicly reachable URL of the PDF to overlay on top. | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=false. Description adds minimal behavioral details beyond 'overlay on top'. No mention of file creation, authorization, 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?
Single sentence of 16 words, front-loaded with action and example. 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?
No output schema, but parameters cover async behavior in schema. Description lacks details on return value, output format, or completion semantics. Adequate but not 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 parameters are already documented. Description adds no additional parameter meaning beyond the example hint. 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 (overlay), resource (PDF pages), and a common use case (watermarks). It distinguishes from siblings like merge-pdf-files and underlay-pdf-pages.
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 with the watermark example but does not explicitly state when to use or not use this tool versus alternatives. Sibling tools are listed but no differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read-pdf-contentRead PDF ContentBRead-onlyInspect
Extract the textual content of a PDF file, page by page.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF file to read. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, which matches read behavior. Description adds 'page by page' but lacks details on return format or handling of image-based PDFs. Some value beyond annotations but limited.
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 core purpose. No superfluous text.
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 and description does not indicate return structure (e.g., array of page texts). Incomplete for an agent to know what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 3 parameters. Description adds no additional meaning beyond schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it extracts textual content page by page from a PDF file. Distinguishes from siblings like read-pdf-content-with-ocr and search-pdf-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?
No guidance on when to use this tool vs alternatives (e.g., OCR for scanned PDFs). No context on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read-pdf-content-with-ocrRead PDF Content with OCRARead-onlyInspect
OCR a scanned PDF and return the extracted textual content, page by page. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the (scanned) PDF file to OCR and read. | |
| webhook_url | No | Callback URL invoked when the async job finishes. Omit and poll "check-job-status" instead if no callback endpoint is available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits beyond annotations: it always runs asynchronously and returns a job id. Annotations only indicate readOnlyHint=true, so this adds significant transparency. However, it omits potential constraints like rate limits or file size limits.
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: first states purpose, second explains async usage. Extremely concise, front-loaded, and 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?
The description covers the core functionality, async workflow, and result retrieval. It does not detail the job status response format or limitations, but given the complexity and lack of output schema, it is reasonably 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 context about async behavior linking to the parameters (e.g., webhook_url for callback), but does not add substantial new meaning beyond the schema descriptions.
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 ('OCR a scanned PDF') and the outcome ('return the extracted textual content, page by page'). It distinguishes itself from siblings like 'read-pdf-content' (for text PDFs) and 'search-pdf-content-with-ocr' (for searching).
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 the async behavior and provides explicit guidance on how to obtain results: poll 'check-job-status' or use 'webhook_url'. It does not explicitly state when not to use, but sibling differentiation is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read-pdf-metadataRead PDF MetadataARead-onlyInspect
Read metadata (title, author, page count, file size, ...) from a PDF file.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF file to read metadata from. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not mention the async capability (async parameter and webhook_url) or that results can be polled via check-job-status. Annotations already declare readOnlyHint=true, but the description adds no further behavioral context beyond the basic read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that immediately states the tool's purpose. No extraneous 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 read-only tool with 3 parameters and no output schema, the description covers the core functionality. It could mention the async option, but overall it is 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% with descriptions for each parameter. The description adds value by listing example metadata fields (title, author, page count, file size) that are not in the schema, giving the user a sense of what the output contains.
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 ('Read') and resource ('metadata from a PDF file') and lists example fields (title, author, page count, file size). It clearly distinguishes from sibling tools like read-pdf-content or search-pdf-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?
No explicit when-to-use or when-not-to-use guidance is provided. The purpose is implicitly clear from the name and description, but there is no direct comparison to siblings like read-pdf-content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove-pdf-securityRemove PDF SecurityAInspect
Remove password-based security restrictions from a PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF file to unlock. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| password | No | Password required to unlock the PDF (if any). | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate destructiveHint=false, so the description adds the specific context of 'password-based security restrictions'. However, it does not disclose further behavioral traits like the outcome (e.g., new URL, modified file) or async 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?
The description is a single sentence that conveys the core purpose without superfluous words, earning its place efficiently.
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 4 parameters and no output schema, the description adequately states the purpose but lacks details on return values, error scenarios, or async behavior. It is functionally minimal but sufficient given the schema coverage.
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%, meaning the schema fully documents parameters. The description adds no additional parameter information, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource, 'Remove password-based security restrictions from a PDF', which clearly states what the tool does and distinguishes it from siblings like 'add-pdf-security'.
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 used when a PDF has password-based security, but it provides no explicit when-not-to-use guidance or alternatives. The sibling tools offer context, but the description itself lacks usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotate-pdf-pagesRotate PDF PagesBInspect
Rotate one or more pages in a PDF by a multiple of 90 degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF file to rotate pages in. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| rotations | Yes | List of rotation operations. Each item: { "angle": "+90"|"-90"|"180"|..., "pages": "page-range" }. | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint: false, but the description does not clarify whether rotation modifies the file in place or creates a new version. It also fails to mention async behavior. The description adds minimal transparency beyond the annotation.
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, precise sentence with no wasted words, front-loading the core purpose effectively.
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?
Despite having 4 parameters and no output schema, the description does not explain return values, async job mechanics, or any prerequisites like file size limits. It lacks completeness for a transformation 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 describes all parameters. The description does not add additional meaning beyond what is in the schema, meeting the baseline.
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 (rotate), resource (PDF pages), and constraint (multiple of 90 degrees), distinguishing it from sibling tools like delete-pdf-pages or extract-pdf-pages.
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. While the operation is straightforward, no guidance on context or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-pdf-contentSearch PDF ContentBRead-onlyInspect
Search for text in a PDF file and return the matches with their positions.
| Name | Required | Description | Default |
|---|---|---|---|
| case | No | Whether the search is case-sensitive. | |
| file | Yes | Publicly reachable URL of the PDF file to search. | |
| text | Yes | Text or pattern to search for. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| regex | No | Whether to interpret "text" as a regular expression. | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is documented. The description adds that it returns matches with positions, which is useful but not critical. It does not disclose any other behavioral traits like permission requirements, rate limits, or handling of large files. Given the high annotation coverage, the description provides adequate additional context for this dimension.
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 concise and to the point. Every word serves a purpose: it names the action, target, and result. There is no extraneous information, making it 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?
Despite having 6 parameters and no output schema, the description does not explain the structure of the returned matches (e.g., page numbers, coordinates, text snippets). It only vaguely mentions 'positions'. For a search tool, this is a significant gap that could lead to incorrect expectation of the output 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?
Schema coverage is 100% with detailed parameter descriptions. The tool description does not add any further meaning beyond what the schema already provides. For example, it does not explain how 'regex' interacts with 'case' or the format of 'webhook_url'. 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 'Search' and the resource 'PDF file', and specifies the outcome 'return the matches with their positions.' It distinguishes from siblings like 'search-pdf-content-with-ocr' and 'read-pdf-content' by not mentioning OCR and focusing on search rather than extraction.
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 no guidance on when to use this tool versus alternatives. It does not mention prerequisites, contexts, or when not to use it. The sibling list includes many PDF-related tools, but the description offers no comparison or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-pdf-content-with-ocrSearch PDF Content with OCRARead-onlyInspect
OCR a scanned PDF and search for text in it. Always runs asynchronously and returns a job id; poll "check-job-status" or provide "webhook_url" to receive a callback. The completed job result contains matches with their positions.
| Name | Required | Description | Default |
|---|---|---|---|
| case | No | Whether the search is case-sensitive. | |
| file | Yes | Publicly reachable URL of the (scanned) PDF file to OCR and search. | |
| text | Yes | Text or pattern to search for. | |
| regex | No | Whether to interpret "text" as a regular expression. | |
| webhook_url | No | Callback URL invoked when the async job finishes. Omit and poll "check-job-status" instead if no callback endpoint is available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds critical async behavior and result format. No contradictions. It could mention rate limits or concurrency, but for a read-only async tool, 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 concise sentences that front-load the main action and then provide essential async workflow 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 explains the result contains matches with positions. It covers the async flow (polling vs callback). Could mention that the job ID is returned in the response, but overall complete for a tool with 5 fully documented parameters.
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 description adds little parameter-specific meaning beyond the schema. It mentions async behavior generally but does not elaborate on parameter usage beyond the schema's own descriptions.
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 'OCR a scanned PDF and search for text in it', which is a specific verb+resource combination. It distinguishes from sibling tools like 'search-pdf-content' by explicitly mentioning OCR and async behavior.
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 states the tool runs asynchronously, provides polling via 'check-job-status' or a callback via 'webhook_url', and describes the result content. However, it does not explicitly state when to use this tool over 'search-pdf-content' (non-OCR) or other search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
split-pdf-fileSplit PDF FileAInspect
Split a PDF file into multiple files using a page-range expression (e.g. "1-3,4-6" for explicit ranges or "n3" for fixed chunks of 3 pages).
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Publicly reachable URL of the PDF file to split. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| pages | Yes | Page-range expression. Comma-separated ranges ("1-3,4-6"), "n[size]" for fixed chunks ("n1" = every page its own file), "r" (reverse), "z" (last page). | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the page-range expression syntax and examples, which is beyond annotations. However, it does not clarify whether the original file is preserved or if the result is multiple files or a zip. The synchronous versus async behavior is covered by parameters but not 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?
A single sentence with examples, no wasted words. Essential information is 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 4 parameters and no output schema, the description covers the core logic well. The only gap is not mentioning how the output is delivered (multiple files, download?). Overall adequate for a tool with good annotations.
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. The description adds clarifications for the 'pages' parameter with examples, but does not add meaning beyond what the schema provides for other parameters. 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 verb 'split' and the resource 'PDF file' into multiple files using a page-range expression. It distinguishes itself from sibling tools like delete-pdf-pages or extract-pdf-pages by focusing on splitting with ranges or fixed chunks.
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 splitting PDFs but does not explicitly compare with alternatives like extract-pdf-pages or delete-pdf-pages. No guidance on when not to use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unarchive-documentUnarchive DocumentAIdempotentInspect
Restore a previously archived document. The document becomes active again and counts toward the workspace's tracked-documents quota.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | The public id of the document to unarchive. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond annotations: document becomes active again and counts toward quota. Annotations already indicate idempotent and non-destructive behavior, so description adds value without contradiction.
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; the first states purpose, the second adds behavioral context. No unnecessary words, front-loaded with essential 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?
Given the low complexity (one parameter, no output schema), the description is nearly complete. It explains the effect on the document and quota. Could mention error cases or idempotency implication, but not necessary.
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 covers the single parameter with full description. The tool description does not add extra semantic detail beyond the schema, so baseline score 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?
Description clearly states 'Restore a previously archived document' using specific verb and resource. It distinguishes from sibling 'archive-document' and other document operations.
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 is to unarchive a document, but no explicit when-to-use or when-not-to-use conditions are provided. Alternatives are not mentioned, though the purpose is clear from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
underlay-pdf-pagesUnderlay PDF PagesAInspect
Underlay another PDF beneath pages of a base PDF (e.g. for backgrounds behind content).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Page-range expression in the underlay PDF to take from. | |
| file | Yes | Publicly reachable URL of the base PDF file. | |
| from | No | Page-range expression in the base PDF to underlay onto. | |
| async | No | Run the action asynchronously and return a job id instead of the result. Poll "check-job-status" or set "webhook_url" to receive a callback. | |
| repeat | No | Page-range expression of underlay pages to repeat. | |
| underlay | Yes | Publicly reachable URL of the PDF to underlay underneath. | |
| webhook_url | No | Callback URL invoked when an async job finishes. Only used when "async" is true. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false. The description does not elaborate on behavioral traits such as async processing, return type, or file size limits. It adequately states the operation but adds no extra context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-constructed sentence that is front-loaded with the core action and purpose. No redundant or extraneous text.
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?
Despite 100% schema coverage, the tool has 7 parameters including complex page-range expressions and async options. With no output schema, the description should explain what the tool returns (e.g., the modified PDF) and clarify page-range syntax or async behavior, which it does not.
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 parameter descriptions. The tool description does not add meaningful information beyond what the schema already provides, so baseline score of 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 tool's function: underlaying one PDF beneath another, with a concrete example (backgrounds). This is specific and distinguishes from siblings like overlay-pdf-pages.
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 a generic use case (backgrounds) but does not explicitly state when to use this tool versus alternatives like overlay-pdf-pages or merge-pdf-files. No exclusions or comparative guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables PDF processing and analysis including text extraction, metadata retrieval, search, page manipulation, splitting/merging, conversion to images, and form handling.10MIT
- AlicenseAqualityAmaintenanceEnterprise-grade PDF engine for AI agents. Pure TypeScript, zero-dependency, and local-first. Allows agents to generate ISO-compliant PDF/A documents, handle digital signatures (PKCS#7), and process high-performance layouts (800+ pages in seconds).241592MIT
- Flicense-qualityDmaintenanceEnables processing and analysis of large PDF files through text extraction, search functionality, and intelligent chunking strategies. Provides comprehensive PDF operations including metadata retrieval, page-range text extraction, and content search with contextual results.
- Alicense-qualityDmaintenanceEnables AI-powered extraction and analysis of PDF documents with 40+ specialized tools for text, tables, images, layout analysis, security assessment, and document intelligence. Supports both text-based and scanned PDFs with OCR capabilities.10MIT