Skip to main content
Glama

Server Details

144 deterministic file tools: PDF, image, media, convert, analyze. Connect in one click (OAuth).

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Unhealthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL

Available Tools

144 tools
analyze_audioA
Read-only
Inspect

Audio Analyzer — Analyse an audio file: duration, sample rate, bit rate, channels, codec, waveform data. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (MP3, WAV, AAC, FLAC, OGG)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds the specific set of extracted audio properties, including waveform data. This gives the agent a concrete sense of what will happen without contradicting the read-only annotation. It stops short of describing output format or limits, but annotations lower the bar here.

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

Conciseness4/5

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

The description is a single, compact sentence with the action and resource front-loaded, followed by a useful property list. The 'Audio Analyzer —' prefix is redundant with the title, but the remaining text earns its place without bloat.

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

Completeness4/5

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

For a single-parameter, read-only analysis tool with no output schema, the description provides the expected return dimensions and the schema handles input format documentation. It could mention output format or file-size constraints, but nothing essential is missing for correct selection and invocation.

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

Parameters3/5

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

Schema description coverage is 100%: the file parameter is already documented as an input file with accepted formats (MP3, WAV, AAC, FLAC, OGG). The description adds no additional parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Analyse') and resource ('audio file'), then enumerates concrete output dimensions: duration, sample rate, bit rate, channels, codec, and waveform data. This clearly distinguishes the tool from generic analyze_file and sibling tools like analyze_video.

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

Usage Guidelines4/5

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

The description gives clear context: use this tool when audio properties are needed. It does not explicitly name alternatives or exclusions, but the strong audio-specific framing and property list make the intended use obvious among the many analyze_* siblings.

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

analyze_color_paletteA
Read-only
Inspect

Color Palette Extractor — Extract the dominant colour palette from an image. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesImage (JPG, PNG, WebP)
colorsNoNumber of palette colors to extract.

TDQS

A3.7/5.0
Behavior3/5

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

The readOnlyHint annotation aligns with the non-destructive 'Extract' wording, and the description adds the 'dominant' nuance for color selection. However, it does not describe output format, limitations, or behavioral edge cases beyond what annotations already imply.

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

Conciseness5/5

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

The description is one compact, front-loaded sentence with the core action stated immediately. The category tag is useful navigation context, and there is no unnecessary filler.

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

Completeness3/5

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

For a simple read-only extraction tool, the description plus fully described schema is mostly sufficient for invocation. However, with no output schema, it does not mention what the returned palette looks like or any selection behavior beyond 'dominant', and it lacks explicit sibling differentiation.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'file' and 'colors' already fully documented by the input schema. The description adds little parameter meaning beyond the word 'dominant', so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific action ('Extract') and a specific resource ('dominant colour palette from an image'). This clearly distinguishes it from the many sibling analyze_* and photo_* tools, such as analyze_image_quality or photo_color_adjuster.

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

Usage Guidelines3/5

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

The description implies when to use the tool by naming its exact purpose, but it does not explicitly state when to prefer it over alternatives or provide any exclusions. An agent can infer usage, but not from explicit guidance.

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

analyze_csvA
Read-only
Inspect

CSV Analyzer — Analyse a CSV file: row/column count, data types, null counts, min/max/mean per column. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (CSV)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark the tool as readOnlyHint=true, and the description adds useful behavioral detail by specifying what the analysis produces. It does not contradict annotations, and it gives the agent a concrete picture of the tool's observable output.

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

Conciseness4/5

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

The description is a single front-loaded sentence that communicates the action and output details efficiently. Minor redundancy exists in repeating 'CSV Analyzer' and the trailing '[category: analyze]' tag, but overall it is appropriately compact.

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

Completeness5/5

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

For a low-complexity tool with one documented parameter, no output schema, and read-only annotations, the description is sufficiently complete. It tells the agent what inputs are expected and what analytical results will be returned, which is enough to decide on and invoke the tool.

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

Parameters3/5

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

Schema description coverage is 100% and the only parameter, 'file', is already described as 'Input file (CSV)'. The description does not add extra meaning to the parameter, so it stays at the baseline for full schema coverage.

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

Purpose5/5

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

The description explicitly states the verb 'Analyse' and the resource 'CSV file', then enumerates the exact analysis outputs: row/column count, data types, null counts, and min/max/mean per column. This makes it clearly distinguishable from generic siblings like analyze_file.

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

Usage Guidelines2/5

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

The description gives no guidance about when to choose this tool over sibling analyzers, nor any exclusions. It simply states what the tool does. With many analyze_* siblings present, an agent gets no help selecting among them.

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

analyze_duplicate_detectorA
Read-only
Inspect

Duplicate Detector — Identify duplicate or near-duplicate files in a batch upload using perceptual hashing. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes2-20 files to compare (any type). Files beyond the first 20 are silently ignored.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value by disclosing the perceptual-hashing mechanism, which implies approximate matching rather than byte-level comparison. It does not disclose result format, similarity threshold, or behavior on mixed file types, but the schema's note about silently ignoring files beyond 20 covers the main edge case.

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

Conciseness4/5

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

A single tight sentence that front-loads the purpose before the method. The 'Duplicate Detector —' prefix slightly redundantly repeats the tool name, but there is no other wasted content, and the key discriminator (perceptual hashing) is included.

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

Completeness4/5

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

For a one-parameter, read-only analyze tool with a fully documented schema, the definition covers the essential context: what it does, how it does it, and the input constraints. The main gaps — return value shape and near-duplicate threshold — are minor for an analyze-category tool with no output schema and would likely be observable at runtime.

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

Parameters3/5

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

Schema description coverage is 100%: the 'files' parameter already documents the 2-20 range, accepted types, and silent-ignore behavior. The description's 'batch upload' phrasing adds minor framing but no new semantic detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb ('Identify'), a specific resource ('duplicate or near-duplicate files in a batch upload'), and the method ('perceptual hashing'). This distinguishes it from siblings like analyze_hash (plain hashing) and analyze_image_similarity (image-specific similarity) — an agent can tell what this tool does without opening the schema.

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

Usage Guidelines3/5

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

The phrase 'in a batch upload' implies the intended scenario (comparing a set of files at once), and the schema's 2-20 file range reinforces this. However, the description gives no explicit when-to-use vs. when-not-to-use guidance and names no alternatives, leaving the agent to infer the boundary against near-siblings like analyze_image_similarity and analyze_hash.

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

analyze_encoding_detectorA
Read-only
Inspect

Encoding Detector — Detect the character encoding of a text or HTML file. Use when accented letters, apostrophes or quotation marks arrive as garbled symbols: it identifies which character set the file was saved in (UTF-8, Windows-1252, ISO-8859-1, UTF-16 and so on). It REPORTS the encoding only — it does not convert or rewrite the file. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (TXT, HTML, CSV, XML)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true, and the description reinforces this by explicitly stating the tool only reports and does not convert or rewrite the file. It also adds useful behavioral context about what kinds of files and encoding issues it addresses. The description aligns with and slightly extends the annotation-provided safety profile.

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

Conciseness5/5

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

The description is compact and front-loaded, starting with a clear one-line summary followed by a practical use case and an explicit scope limitation. Every sentence earns its place, and the category tag is unobtrusively appended.

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

Completeness5/5

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

For a simple, single-parameter, read-only detector tool, the description covers the trigger scenario, supported encodings, input file types, and the boundary of what it does not do. No output schema exists, but the description's 'reports the encoding only' sufficiently conveys the outcome. Nothing critical is missing.

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

Parameters3/5

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

The single parameter 'file' is already fully documented in the schema with type, format, and accepted extensions (TXT, HTML, CSV, XML), so schema coverage is 100%. The description adds no new parameter-specific semantics beyond listing example encodings, which is marginal value. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly identifies the specific action 'Detect the character encoding' and the resource 'text or HTML file.' It also distinguishes itself from conversion tools by stating 'It REPORTS the encoding only — it does not convert or rewrite the file,' making its purpose unmistakable among the large sibling set.

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

Usage Guidelines4/5

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

It provides an explicit trigger condition: 'Use when accented letters, apostrophes or quotation marks arrive as garbled symbols.' It also clarifies what it does not do, so an agent knows not to use it for conversion or rewriting. However, it does not name specific alternative tools or state when not to use it beyond the conversion exclusion.

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

analyze_fileA
Read-only
Inspect

File Analyzer — Analyse a file and return type, encoding, size, MIME type, magic bytes, and structure summary. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (any)

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the tool's safety profile is clear. The description adds useful behavioral context beyond the annotations by specifying the exact output facets the analysis returns (type, encoding, size, MIME type, magic bytes, structure summary). It does not disclose limitations like file size limits, but the low-risk read-only nature makes that acceptable.

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

Conciseness4/5

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

The description is one front-loaded sentence that immediately states the action and the return values. The 'File Analyzer —' prefix redundantly repeats the tool name and the '[category: analyze]' tag adds marginal value, but there is no meaningful padding or wasted prose.

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

Completeness4/5

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

For a simple one-parameter read-only tool with no output schema, the description covers the essential information: what the tool does and what it returns. The lack of explicit guidance about specialized sibling tools is a gap, but the low complexity and full schema coverage keep the definition reasonably complete.

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

Parameters3/5

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

The schema has 100% description coverage: the single binary 'file' parameter is documented as 'Input file (any)'. The description adds no extra parameter-level details, so the baseline score of 3 is appropriate since the schema fully handles parameter semantics.

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

Purpose4/5

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

The description uses a specific verb ('Analyse') and names the resource ('a file') while enumerating concrete outputs: type, encoding, size, MIME type, magic bytes, and structure summary. However, it does not explicitly distinguish itself from specialized sibling analyzers such as analyze_metadata or analyze_encoding_detector, leaving some ambiguity about which tool to choose for a generic file.

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

Usage Guidelines3/5

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

The generic phrasing 'Analyse a file' and the '[category: analyze]' tag imply this is a general-purpose analyzer, but there is no explicit statement about when to use it instead of specialized tools like analyze_audio, analyze_csv, or analyze_pdf_inspector. No alternatives or exclusions are mentioned, so the agent must infer usage context.

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

analyze_file_diffA
Read-only
Inspect

File Diff — Show a line-by-line diff between two text files (file_a + file_b) or two pasted texts (text_a + text_b). Provide one complete pair. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
file_aNoFirst file — TXT, CSV, JSON, XML. Send file_a AND file_b together (file mode).
file_bNoSecond file.
text_aNoFirst text — alternative to the file pair. Send text_a AND text_b together (text mode).
text_bNoSecond text.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds real behavioral value by disclosing the pairing constraint ('Provide one complete pair') — which matters because the schema lists 0 required parameters — and by specifying line-by-line output granularity. This is context the agent would not get from annotations alone.

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

Conciseness4/5

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

The core action is front-loaded and the critical pairing requirement is distilled into one short imperative sentence. Minor redundancy exists — the 'File Diff —' prefix restates the annotation title and '[category: analyze]' adds little — but these are small tokens of noise in an otherwise tight definition.

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

Completeness4/5

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

For a simple read-only tool with four self-documenting parameters, the description covers the essential operational trap (modes and pairing) and indicates the result shape ('line-by-line diff'), which partly compensates for the missing output schema. It would benefit from return-format or input-limit details (e.g., handling of binary inputs, size caps), but nothing critical is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter is already described, including the file-mode and text-mode pairing hints on file_a and text_a, so the baseline is 3. The description's 'Provide one complete pair' reinforces the schema's existing mode guidance rather than adding new per-parameter meaning.

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

Purpose5/5

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

The description uses a specific verb ('Show') and resource ('line-by-line diff between two text files or two pasted texts'), and clearly delimits the tool's scope. Among dozens of analyze_* siblings, it is easily distinguishable as the text-diff tool, especially against photo_image_diff (image diff) and analyze_file (generic file analyzer).

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

Usage Guidelines3/5

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

The description clearly states how to invoke the tool — one complete file pair or one complete text pair — which is useful operational guidance. However, it never names alternatives or exclusion conditions (e.g., no mention of photo_image_diff for images, or a warning against binary inputs), so when-to-use vs alternatives is only implied.

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

analyze_font_detectorA
Read-only
Inspect

Font Detector — Detect fonts used in a PDF or DOCX document. Images are not supported. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF, DOCX)

TDQS

A4.2/5.0
Behavior3/5

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

The readOnlyHint annotation already communicates that this is a non-mutating operation. The description adds useful behavioral context by limiting inputs to PDF/DOCX and excluding images, but it does not disclose additional behaviors such as output format, behavior on unsupported files, or font-detection limitations.

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

Conciseness5/5

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

The description is a single compact, front-loaded sentence. It leads with the tool's role, follows with accepted formats, and ends with the key exclusion. No unnecessary filler or repetition of schema details.

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

Completeness4/5

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

For a simple one-parameter, read-only tool with no output schema, the description adequately covers the core scenario: input file types and an important unsupported case. It does not detail return structure, but the tool name and action make the expected output reasonably clear.

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

Parameters4/5

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

The schema already documents the single 'file' parameter as PDF/DOCX input, so the description is not the only source. However, it adds meaningful semantic value by explicitly stating that images are unsupported, which clarifies the accepted input domain beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Detect fonts') and the resource scope ('PDF or DOCX document'), with an explicit exclusion of images. This makes it unmistakable what the tool does and distinguishes it from the many sibling analyze_* tools.

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

Usage Guidelines4/5

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

The description provides clear when-to-use context: any PDF or DOCX where font detection is needed. It also gives a when-not-to-use signal by explicitly stating that images are not supported, though it does not name a specific alternative tool.

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

analyze_grammar_checkB
Read-only
Inspect

Grammar Checker — Hybrid LanguageTool + Grok grammar checker with rule citations, style-guide awareness (APA/MLA/Chicago/AP/IEEE), dialect enforcement (US/UK/CA/AU), and per-issue severity. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNostrict = flag any casual phrasing; tone-preserving = preserve the author's voice.tone-preserving
textYesThe text to check (max 50,000 characters).
styleNoStyle-guide conventions to enforce (e.g. Oxford comma for APA/MLA/IEEE/Chicago, dropped for AP).none
dialectNoEnglish dialect for spelling and grammar rules.en-US
include_llmNoRun the Grok stage for context-dependent issues LanguageTool misses. Set false for rule-only output.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds meaningful behavioral context beyond that: it uses a hybrid LanguageTool + Grok pipeline, produces rule citations, enforces style guides and dialects, and reports per-issue severity. It does not fully describe output format or the implications of sending text to an LLM, but the added detail is substantial.

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

Conciseness4/5

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

The description is a single dense sentence that packs substantial information without rambling. It loses some polish due to redundancy: 'Grammar Checker — ... grammar checker' repeats the core noun, but overall it is efficient and front-loaded with the tool's main function.

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

Completeness3/5

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

With no output schema present, the description partially compensates by mentioning rule citations, style-guide awareness, dialect enforcement, and per-issue severity, which hint at the return shape. However, it does not explicitly describe the output structure, result format, or how to distinguish single-text use from the batch sibling, leaving moderate gaps for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents all five parameters, their enums, defaults, and descriptions. The description's mention of style guides, dialects, and severity aligns with parameters like style and dialect, but it does not add meaningful parameter-level semantics beyond what the schema already provides.

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

Purpose4/5

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

The description clearly identifies the tool as a grammar checker with specific capabilities: hybrid LanguageTool + Grok processing, rule citations, style-guide enforcement, dialect handling, and per-issue severity. It is not a vague restatement, but it does not explicitly distinguish itself from the sibling analyze_grammar_check_batch tool, preventing a 5.

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

Usage Guidelines2/5

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

The description implies usage through its feature list but provides no explicit guidance on when to choose this tool over alternatives. In particular, it does not mention the batch sibling or any exclusion criteria, leaving the agent to infer the single-text scope from the tool name and schema.

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

analyze_grammar_check_batchA
Read-only
Inspect

Grammar Checker (Batch) — Run the hybrid grammar checker across up to 20 texts in one call; per-item style, dialect, and mode supported. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesUp to 20 texts to check. Each item carries its own style / dialect / mode / include_llm.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety and closed-world profile. The description adds useful behavioral context about the 20-item batch limit and per-item style/dialect/mode support, but it does not explain what 'hybrid' means or what the response contains.

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

Conciseness4/5

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

The description is a single concise sentence with the key capability front-loaded. Minor redundancy exists because 'Grammar Checker (Batch)' repeats the title, and the closing '[category: analyze]' tag is not essential for invocation.

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

Completeness3/5

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

For a one-parameter tool with a fully documented input schema, the description is adequate for invoking the tool. However, there is no output schema and no description of return values, and the distinction from analyze_grammar_check is only implicit, leaving some contextual gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the items parameter and its nested properties. The description only restates that per-item style, dialect, and mode are supported, adding little beyond the schema.

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

Purpose5/5

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

The description states a specific action ('Run the hybrid grammar checker') and resource scope ('across up to 20 texts in one call'), which clearly distinguishes it from the single-item sibling analyze_grammar_check. The 'Batch' label and the per-item options make the tool's role unambiguous.

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

Usage Guidelines3/5

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

The description implies batch usage via 'up to 20 texts in one call' and clearly frames the tool as a batch operation. However, it does not explicitly say when to prefer this over analyze_grammar_check or when to use the single-item variant, leaving the choice to inference.

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

analyze_hashB
Read-only
Inspect

Hash Generator (File) — Compute MD5, SHA-1, SHA-256, and SHA-512 hashes of an uploaded file. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesFile to hash (any type)
textNoDirect text alternative to the file.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to justify safety. It adds useful context about the supported hash algorithms and file input scope. However, it does not disclose output format, limits, or the fact that a direct text alternative exists in the schema.

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

Conciseness4/5

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

The description is a single compact sentence that front-loads the core purpose and algorithm list. The opening 'Hash Generator (File)' partially repeats the title, but the overall content is efficient and free of filler.

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

Completeness3/5

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

For a simple read-only hashing tool, the description is mostly adequate: it names the algorithms and input type. However, there is no output schema and the description does not mention return format, nor does it acknowledge the text-input alternative, which is a notable gap.

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

Parameters3/5

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

Schema description coverage is 100%: both 'file' and 'text' have descriptions in the schema. The tool description adds no new parameter-level meaning beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

The description names a specific verb ('Compute') and resource ('hashes of an uploaded file') and explicitly lists MD5, SHA-1, SHA-256, and SHA-512. This clearly distinguishes it as a file-hashing/analysis tool, though it does not explicitly contrast it with the sibling generate_hash.

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

Usage Guidelines2/5

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

The description gives a clear scenario—computing hashes of an uploaded file—but provides no guidance on when to use this tool versus alternatives like generate_hash or analyze_file. There are no exclusions, prerequisites, or explicit routing to other tools.

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

analyze_image_qualityA
Read-only
Inspect

Image Quality Analyzer — Measure sharpness, noise level, compression artefacts, and BRISQUE quality score of an image. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (JPG, PNG, WebP)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds behavioral detail by enumerating exactly what the tool computes. It does not discuss output format or file size limits, but for a read-only analyzer these gaps are minor.

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

Conciseness4/5

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

The description is a single efficient sentence with the core operation front-loaded and no filler. The leading 'Image Quality Analyzer' phrase slightly duplicates the tool title/annotation, keeping it from a perfect score.

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

Completeness4/5

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

For a one-parameter, read-only analysis tool, the description sufficiently explains what the tool does and what metrics it returns. It omits the exact return format, but the listed metrics are enough for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%: the only parameter, 'file', is already documented with accepted formats. The description's phrase 'of an image' adds little semantic value beyond the schema, so the baseline score of 3 applies.

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

Purpose5/5

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

The description uses a specific verb, 'Measure', and names four concrete outputs: sharpness, noise level, compression artefacts, and BRISQUE quality score. This clearly distinguishes it from sibling tools like analyze_image_similarity or analyze_metadata.

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

Usage Guidelines4/5

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

The description provides clear context: use this tool when you need objective image quality metrics. It does not explicitly mention alternatives or when-not-to-use conditions, so it stops just short of full routing guidance.

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

analyze_image_similarityB
Read-only
Inspect

Image Similarity — Compute a perceptual similarity score between two images (pHash distance). Takes two separately-named uploads: 'file_a' and 'file_b'. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
file_aYesFirst image — JPG, PNG
file_bYesSecond image — JPG, PNG

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already cover read-only safety (readOnlyHint=true), and the description adds the algorithmic context that 'similarity' means pHash distance, which is genuinely useful. It also clarifies that file_a and file_b must be separately-named uploads, a non-obvious calling trait. However, it does not disclose the output score's range, direction, or thresholds, leaving result interpretation ambiguous.

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

Conciseness4/5

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

A single front-loaded sentence that leads with the core purpose, then the calling detail, then a category tag — no filler. The only redundancy is restating the exact title 'Image Similarity' at the start, which is a minor deduction.

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

Completeness3/5

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

For a low-complexity, read-only tool with fully documented parameters, inputs and core behavior are adequately covered. The notable gap is the absence of an output schema combined with no description of the score's format or interpretation, which an agent needs to judge how to use the result. Adequate but not fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, both binary params are documented with accepted formats (JPG, PNG), so the baseline of 3 applies. The description adds only the minor clarification that the two uploads must be separately named, which is a small enhancement over the schema.

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

Purpose5/5

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

States a specific verb ('Compute') and resource ('perceptual similarity score between two images'), and pins down the method (pHash distance). The pHash detail implicitly differentiates it from siblings like photo_image_diff (pixel diff) and analyze_image_quality, so an agent can tell them apart without opening any schema.

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

Usage Guidelines2/5

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

No guidance on when to choose this tool over its many related siblings (photo_image_diff, analyze_image_quality, describe_image, etc.). There are no conditions, exclusions, or alternative tool names. The only operational hint — that inputs are two separately-named uploads — concerns calling convention, not tool selection.

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

analyze_metadataA
Read-only
Inspect

Metadata Viewer — Extract and display all metadata from a file (EXIF, PDF info, document properties, audio tags). [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (any)

TDQS

A3.5/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes that this is a safe, read-only operation. The description adds useful scope by enumerating metadata types, but it does not disclose output format, potential limitations of 'all metadata', or how results are returned, leaving a moderate behavioral gap.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with useful examples and no fluff. The 'Metadata Viewer —' prefix is slightly redundant with the annotation title, and the '[category: analyze]' tag adds minimal value, which keeps it from a perfect score.

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

Completeness4/5

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

For a low-complexity tool with one required parameter, a readOnlyHint annotation, and a simple 'display all metadata' output concept, the description is mostly sufficient. The lack of an output schema and any mention of output format or supported file limitations is a minor gap, but not enough to make the tool hard to invoke.

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

Parameters3/5

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

Schema coverage is 100%: the only parameter, 'file', is already described as 'Input file (any)'. The description adds the context that the file's metadata will be extracted, but it does not add format, size, or encoding semantics beyond what the schema already provides.

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

Purpose4/5

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

The description states a clear action ('Extract and display') on a well-defined resource ('all metadata from a file') and gives concrete metadata categories (EXIF, PDF info, document properties, audio tags). It does not explicitly distinguish itself from siblings like photo_exif_viewer or pdf_get_metadata, so it stops short of full sibling differentiation.

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

Usage Guidelines3/5

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

The description implies usage: use this when you need general metadata from a file. However, it provides no explicit guidance about when to choose this instead of the more specialized metadata-related siblings, nor does it mention any exclusions or prerequisites.

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

analyze_pdf_inspectorA
Read-only
Inspect

PDF Inspector — Deep inspection of a PDF: page count, fonts used, annotations, form fields, embedded files. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A3.5/5.0
Behavior3/5

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

The description is consistent with readOnlyHint:true and openWorldHint:false, and 'inspection' signals no mutation. It adds the scope of what is read but does not disclose potential limits like file-size restrictions, authentication needs, or response format. Because annotations already cover the read-only safety profile, the description meets the baseline but adds limited extra behavioral context.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with the tool's role followed by an enumerative list of inspection targets and a category tag. It contains no filler, though the phrase 'PDF Inspector' slightly duplicates the title annotation.

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

Completeness4/5

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

For a single-input, read-only inspection tool, the description is largely sufficient: it names the input type, the operation, and the main output categories. However, since there is no output schema and several overlapping PDF-analysis siblings exist, a brief note on where this tool fits among them would make it fully self-sufficient.

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

Parameters3/5

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

The only parameter, file, is fully documented in the schema as 'Input file (PDF)' with binary format. The description repeats the PDF context but contributes no additional constraints or format details. With 100% schema description coverage, a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description identifies a specific function—deep inspection of a PDF—and enumerates concrete deliverables (page count, fonts, annotations, form fields, embedded files). It clearly places the tool in the analysis category, though it does not explicitly distinguish it from overlapping PDF-analysis siblings like pdf_file_info or pdf_page_count.

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

Usage Guidelines3/5

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

The [category: analyze] tag and the 'deep inspection' phrasing imply the tool is for broad read-only analysis of a PDF. However, the description provides no explicit guidance on when to use this tool instead of alternatives such as pdf_page_count, pdf_file_info, or analyze_metadata, and gives no 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.

analyze_readabilityA
Read-only
Inspect

Readability Scorer — Calculate Flesch Reading Ease and Flesch-Kincaid Grade Level for a text. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoAlternative: upload a .txt, .pdf, or .docx document (max 25MB).
textYesPlain text to score — minimum ~5 words. Required unless 'file' is provided.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is known. The description usefully adds that the tool computes two specific readability scores, but it does not disclose operational details such as output structure, handling of short texts, or file-input behavior. No contradiction 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.

Conciseness5/5

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

The description is a single front-loaded sentence that immediately states what the tool does and which metrics it computes. It contains no filler and earns its place.

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

Completeness4/5

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

For a simple read-only tool with two well-documented parameters, the description covers the core behavior and compensates for the missing output schema by naming the metrics returned. The file-upload alternative is absent from the description but is already fully documented in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'text' and 'file' parameters already documented in the input schema. The description adds little beyond naming the computed metrics, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description names a specific verb ('Calculate') and resource (readability metrics for a text), and even identifies the exact output metrics: Flesch Reading Ease and Flesch-Kincaid Grade Level. It is clear enough to distinguish from most siblings, though it does not explicitly call out a sibling tool for comparison.

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

Usage Guidelines3/5

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

The 'Readability Scorer' label and category imply it should be used when an agent needs readability statistics for a text. However, there is no explicit guidance about when to prefer this tool over related siblings like analyze_word_count or analyze_grammar_check, and no exclusions are stated.

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

analyze_sslB
Read-only
Inspect

SSL Checker — Check an SSL certificate for a hostname: expiry, issuer, validity, cipher suite. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameYesHostname to check, e.g. example.com. Field name is 'hostname' — not 'domain'. Any port suffix is ignored; 443 is always used.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description need not repeat safety traits. The description adds the certificate-specific checks performed, but it does not disclose network behavior or possible failure modes beyond the schema's note about always using port 443.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler: it names the tool equivalently, states the operation, and lists the main result categories. Every part earns its place.

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

Completeness4/5

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

For a one-parameter read-only tool, the description is nearly complete: the schema covers the hostname parameter, annotations cover the safety profile, and the description names the expected output aspects. Since there is no output schema, a bit more detail about the exact return format could help, but it is not essential for selecting and invoking the tool.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema's hostname parameter is already well-documented, including the 'not domain' naming note and port behavior. The tool description adds no parameter semantics beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Check an SSL certificate for a hostname', and it lists the key result areas (expiry, issuer, validity, cipher suite). This makes the tool's function clear, though it does not explicitly differentiate itself from other analyze_* siblings.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, and it names no sibling tools or exclusion conditions. The '[category: analyze]' tag implies a general domain but does not help an agent decide between this and other analysis tools.

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

analyze_videoA
Read-only
Inspect

Video Inspector — Inspect a video: duration, resolution, frame rate, codec, audio tracks, bitrate. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (MP4, MOV, AVI, MKV, WebM)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description reinforces this with 'Inspect' and 'Video Inspector'. The description adds value by specifying the exact behavioral scope—what properties are examined—without claiming any side effects. No contradictions with annotations exist.

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

Conciseness5/5

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

The description is one tight sentence with a clear title prefix, an action verb, and a comma-separated list of outputs. Every word earns its place, and the key information is front-loaded.

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

Completeness5/5

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

For a read-only tool with one binary input and no output schema, the description sufficiently conveys what the tool returns by listing the inspected video properties. The agent can select and call the tool with confidence without missing critical context.

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

Parameters3/5

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

The schema has 100% description coverage for the single 'file' parameter, including supported formats. The tool description does not add additional parameter-level meaning beyond what the schema already provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Inspect') and resource ('a video') and enumerates the exact properties inspected: duration, resolution, frame rate, codec, audio tracks, and bitrate. This clearly distinguishes it from sibling tools like analyze_audio or analyze_file.

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

Usage Guidelines3/5

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

The description implies this tool is for inspecting video metadata and properties, so an agent can infer when it is appropriate to use. However, it does not explicitly state when to prefer it over related tools such as analyze_file, analyze_metadata, or media_extract_audio, nor does it provide exclusion criteria.

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

analyze_word_countB
Read-only
Inspect

Word Counter — Count words, characters, sentences, paragraphs, and reading time in a text or uploaded document (.txt/.pdf/.docx). [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoAlternative: upload a .txt, .pdf, or .docx document (max 25MB).
textYesText to analyse. Required unless 'file' is provided.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is established. The description adds that the tool handles text or .txt/.pdf/.docx uploads and computes several count-based metrics, which clarifies scope but adds little about side effects, processing limits, or return behavior beyond what annotations and schema already imply.

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

Conciseness4/5

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

The description is a single efficient sentence with a clear em-dash lead-in, front-loading the core action and metrics. It is slightly redundant with the title and includes a category tag, but overall there is minimal waste.

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

Completeness4/5

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

For a low-complexity, read-only analysis tool, the description covers the resource type, supported formats, and what it counts. Since there is no output schema, it would help to explicitly state the return shape, but the metric enumeration makes the expected result reasonably inferable.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the 'text' and 'file' parameters. The description adds the list of computed metrics and the supported document formats, but these are mostly redundant with the schema and title; it does not deepen parameter understanding.

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

Purpose4/5

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

The description states a specific action ('Count') and resource (text or uploaded document), and enumerates the counted metrics. It distinguishes itself from siblings like analyze_word_frequency and analyze_readability by listing characters, sentences, paragraphs, and reading time, though it does not explicitly name an alternative tool.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as analyze_word_frequency or analyze_grammar_check. The usage context is only implied by the tool name and metric list; there are no exclusions, prerequisites, or explicit routing instructions.

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

analyze_word_frequencyC
Read-only
Inspect

Word Frequency Analyzer — Analyse word frequency distribution in a text or document file. [category: analyze]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoText or document file
textNoDirect text input. Provide either file or text.
topNNoHow many top words to return.
excludeNoComma-separated words to exclude from the count.

TDQS

C2.9/5.0
Behavior2/5

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

The readOnlyHint annotation already indicates this is a safe read-only operation, and the description adds no behavioral context beyond what the title implies. It does not disclose output format, supported document types, stopword handling, or limitations, so the description itself contributes little behavioral transparency.

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

Conciseness4/5

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

The description is only one sentence and is easy to scan. It does repeat the tool's title ('Word Frequency Analyzer') and appends a category tag, but these are minor and do not significantly reduce clarity.

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

Completeness3/5

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

Given that this is a simple read-only analysis tool with fully documented parameters, the description plus schema cover the basic inputs and purpose. However, there is no output schema and the description does not describe what the returned frequency distribution looks like, nor does it help distinguish this tool from close siblings. The definition is adequate but has clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented in the input schema. The description adds no substantive parameter semantics beyond loosely referencing text or document files, which matches existing schema descriptions. A baseline of 3 is appropriate because the schema carries the full burden.

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

Purpose4/5

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

The description states a specific verb and resource: 'Analyse word frequency distribution in a text or document file.' It clearly identifies the tool's purpose, but it does not explicitly differentiate it from the closely related sibling analyze_word_count, so it falls slightly short of a 5.

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

Usage Guidelines2/5

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

The description gives no guidance on when to choose this tool over alternatives such as analyze_word_count or analyze_readability. It does not mention exclusions, preferred input scenarios, or trade-offs, so the agent must infer usage from the name and schema alone.

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

chatwithyourpdfA
Read-only
Inspect

Chat With Your PDF — Read the text of the user's document — PDFs first and foremost, plus TXT/CSV/Markdown/JSON — so you can chat about it: answer questions, summarize it, or use facts from it in later steps. Business plan only. Returns up to max_chars characters. For Word files: convert with word_to_pdf first, then chat with the PDF. [category: content] [requires the business plan]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesThe document to read
max_charsNoHow much text to return (200-12000)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description's 'Read the text' is fully consistent (no contradiction). The description adds genuine behavioral context beyond annotations: the business-plan gate, the max_chars truncation limit, and the exact input format scope.

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

Conciseness4/5

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

Core information (purpose, formats, use cases) is front-loaded and each clause earns its place. Minor redundancy: 'Business plan only' is repeated by the trailing '[requires the business plan]' tag, and the opener echoes the title.

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

Completeness4/5

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

For a moderate-complexity file-ingestion tool with no output schema, the description covers purpose, formats, plan constraint, truncation limit, and the conversion workflow — enough for correct invocation. The main gap is the exact return shape (plain text vs. structured), which is left inferable.

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

Parameters4/5

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

With 100% schema coverage the baseline is 3, but the description adds value for the `file` parameter by specifying which formats are accepted — something the schema's generic 'The document to read' omits. It also reinforces the max_chars behavior ('Returns up to max_chars characters'), which helps the agent size the request correctly.

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

Purpose5/5

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

Specifies a concrete action (read/extract the text of the user's document), enumerates the supported formats (PDF, TXT, CSV, Markdown, JSON), and ties the tool to clear use cases (answer questions, summarize, use facts later). The chat-oriented framing distinguishes it from sibling extraction/conversion tools like pdf_to_text, and the Word-file exclusion clarifies scope.

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

Usage Guidelines4/5

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

Explicitly routes the Word-file edge case to convert_word_to_pdf before using this tool, which is strong when-to/not-to guidance. However, it stops there — it doesn't address alternatives for other scenarios (e.g., pure extraction via pdf_to_text, OCR for scanned PDFs via pdf_ocr), leaving some routing to inference.

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

convert_archiveAInspect

Archive Converter — Convert between archive formats. Input: ZIP, RAR, 7Z, GZ/TAR.GZ, TAR.BZ2, TAR.XZ, TAR, CAB, ISO — recognized by filename extension or file signature, so misnamed uploads work. Output: ZIP, TAR, TAR.GZ, TAR.BZ2, TAR.XZ, 7Z. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesOutput archive format. Field name is 'to' — not 'format'.
fileYesArchive to convert — ZIP, RAR, 7Z, GZ, TAR, TAR.BZ2, TAR.XZ, CAB, ISO (max 200MB)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false, so they provide minimal behavioral signal. The description adds genuinely useful behavior: format recognition by filename extension or file signature, meaning misnamed uploads still work. This helps an agent predict behavior beyond the schema.

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

Conciseness5/5

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

The description is a single, efficient sentence that packs in the purpose, full input list, full output list, and a meaningful behavioral detail (signature detection). No filler or redundancy.

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

Completeness5/5

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

For a two-parameter conversion tool, the description plus schema covers everything needed: input formats, output formats, detection behavior, required parameters, and the `to` enum. No output schema exists, but the simple binary-output nature doesn't require further explanation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both `file` and `to` parameters. The description restates supported formats and detection behavior, but adds little 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.

Purpose5/5

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

Description states a specific verb ('Convert') and resource ('between archive formats'), with explicit input/output format lists. The format enumeration makes it clearly distinct from sibling conversion tools like convert_document or convert_video.

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

Usage Guidelines4/5

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

The description clearly establishes when to use this tool: whenever an archive file needs format conversion. It provides supported input and output formats, plus the note about signature-based detection. It doesn't explicitly name alternatives or state when not to use it, but the context is unambiguous.

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

convert_batchAInspect

Batch Converter — Convert many files in one request and download a ZIP of the results. Auto-target rules pick a sensible output format per file (docx→pdf, heic→jpg, mov→mp4, etc.) or specify a global target like 'pdf' or a per-extension override map. Free tier supports up to 5 files; Business tier up to 50. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes200 MB combined cap. Rows that can't convert are skipped, not fatal — check _manifest.txt in the ZIP for per-row status.
targetNo'auto' (default), a single target format like 'pdf', or a JSON map like '{"docx":"pdf","heic":"jpg"}'
filenamesNoOriginal filenames, one per entry in files[] and in the same order (e.g. ['report.csv','photo.heic']). Strongly recommended: per-file format detection and per-extension target rules key off these names.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations are minimal (readOnlyHint=false, destructiveHint=false), and the description adds real behavioral value: it returns a downloadable ZIP, applies auto-target per-file rules, and enforces tier-based file limits. The destructiveHint=false annotation is consistent with the description's implication that source files are not destroyed. No contradiction found.

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

Conciseness5/5

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

Three tight sentences — purpose, target behavior, and tier limits — each earning its place, with the primary action front-loaded. The [category: convert] suffix is minor noise but does not detract.

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

Completeness4/5

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

For a batch tool with no output schema, the description covers the essential return shape ('download a ZIP of the results'), the failure model is covered in the schema's files parameter (_manifest.txt, skip-not-fatal), and tier limits are stated. Minor gaps remain — output filename behavior and mixed-type handling under a global target — but nothing that would prevent a correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline of 3 applies. The description reinforces the target parameter's dual mode (global format like 'pdf' vs per-extension override map) and adds auto-format examples, but this largely restates what the schema already documents for target and filenames. No meaningfully new parameter insight is added.

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

Purpose5/5

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

States a specific verb and resource: 'Convert many files in one request and download a ZIP of the results.' The batch + ZIP framing and concrete auto-target examples (docx→pdf, heic→jpg, mov→mp4) clearly distinguish it from single-file siblings like convert_file, convert_document, and convert_word_to_pdf.

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

Usage Guidelines4/5

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

The opening 'Convert many files in one request' clearly signals the batch use case, and the tier limits (5 free vs 50 Business) give an agent concrete eligibility checks before invoking. However, it does not explicitly name alternatives or state when NOT to use it (e.g., for a single conversion), so the when-not guidance is left implied.

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

convert_chainAInspect

Conversion Chain — Run a 1-5 step conversion pipeline in one job, e.g. docx → pdf → epub. Each step's engine is auto-picked from the conversion graph. Input format comes from the 'from' field when given, else magic-byte detection — ALWAYS pass 'from' for text-based inputs (csv, md, html, json): they have no magic bytes and detect as plain txt. Business tier only. [category: convert] [requires the business plan]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesMax 100 MB — tighter than single-tool caps because chains amplify temp disk.
fromNoOptional source-format override, e.g. 'csv', 'md', 'xlsx'. REQUIRED in practice for extensionless text inputs — magic bytes can't distinguish csv/md/yaml from txt.
stepsYesJSON array of {to, engine?} step objects. Example: '[{"to":"pdf"},{"to":"epub"}]'

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the sparse annotations (readOnlyHint=false, destructiveHint=false). It discloses engine auto-picking from the conversion graph, magic-byte detection behavior, and the critical gotcha that text-based inputs require 'from' because they lack magic bytes. It also states the business-tier requirement.

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

Conciseness4/5

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

The description is front-loaded with a clear purpose and example, and the magic-byte warning is valuable. However, 'Business tier only' and '[requires the business plan]' are redundant, and the 'category: convert' tag adds marginal value, so it is slightly less tight than it could be.

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

Completeness4/5

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

For a 3-parameter tool with full schema coverage, the description covers the essential semantics: step count, engine selection, input format detection, text-input warning, file size limit, and tier restriction. It does not describe return values or enumerate supported formats, but that is a minor gap given the richness of the schema and description.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining that each step's engine is auto-picked from the conversion graph, which clarifies the optional 'engine' field in the steps schema. It also reinforces the 'from' parameter's practical necessity for text-based inputs.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Run a 1-5 step conversion pipeline in one job,' with a concrete example (docx → pdf → epub). This clearly distinguishes it from single-step converters like convert_file or convert_document among the siblings.

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

Usage Guidelines4/5

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

The description clearly indicates this is for multi-step conversion jobs ('1-5 step conversion pipeline in one job') and includes the business-tier restriction. However, it does not explicitly name alternatives or state 'use convert_file for a single conversion step,' so the when-not-to-use guidance is implied rather than explicit.

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

convert_contactAInspect

Contact Converter — Convert contact/calendar/email formats: vCard↔CSV, vCard→XLSX (vcf to excel), ICS→JSON/CSV, MSG→EML, EML→PDF. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget format. Only these pairs are valid: vcf→csv, vcf→xlsx, csv→vcf, ics→json, ics→csv, msg→eml, eml→pdf.
fileYesParsed as the declared 'from' — bytes are never sniffed. Size caps vary by pair: 10 MB vcf/csv/ics, 25 MB eml, 50 MB msg.
fromYesSource format.

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already indicate the operation is not read-only and not destructive, so the description adds little behavioral context beyond that. It does not state what happens to the input, how the output is returned, or any side effects. The format list is more about scope/parameters than behavior.

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

Conciseness4/5

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

The description is a single, readable sentence that front-loads the tool's purpose and supported conversions. It contains minor redundancy ('vcf to excel' repeats vCard→XLSX, and 'Contact Converter —' echoes the title), but it is still compact and scannable.

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

Completeness3/5

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

The schema fully covers the parameters, and the description clarifies the conversion domain, making the tool invocable. However, there is no output schema and the description does not explain what the tool returns or how the converted file is delivered, which is a notable gap for a conversion tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 even though the description adds minimal parameter detail. The description repeats valid format pairs that are already documented in the 'to' parameter description, so it does not meaningfully enhance the schema.

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

Purpose5/5

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

The description clearly identifies the tool's specific verb ('Convert') and resource ('contact/calendar/email formats'), listing exact format pairs. This distinguishes it from the many generic convert_* siblings like convert_file and convert_document.

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

Usage Guidelines4/5

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

The description gives clear context on when to use the tool by enumerating supported conversions (vCard↔CSV, vCard→XLSX, ICS→JSON/CSV, MSG→EML, EML→PDF). It does not explicitly name alternatives or exclusions, but the domain is specific enough for an agent to route appropriately.

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

convert_dataAInspect

Data Converter — Convert a data file between formats (JSON, NDJSON/JSONL, CSV, TSV, XML, YAML, TOML, INI). Upload the data file and pick a target format; the result comes back as a downloadable file (so it chains in workflows). Inline text is also accepted via a JSON-body 'input' string instead of a file. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget format. Must differ from the source format.
fileYesThe data file to convert (max 5MB).
fromNoSource format. Optional — inferred from the file extension when omitted. 'ndjson' (aka jsonl) is newline-delimited JSON; 'tsv' is tab-separated values.

TDQS

A3.8/5.0
Behavior4/5

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

Adds useful behavioral facts beyond annotations: the result is returned as a downloadable file rather than an inline body, and inline text can substitute for a file upload. This is consistent with readOnlyHint=false and destructiveHint=false, since conversion creates an output artifact without destroying the input.

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

Conciseness4/5

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

Three sentences, front-loaded with purpose and format list, then usage and output behavior. Minor redundancy exists: the 'Data Converter' prefix repeats the title/category, and 'upload the data file and pick a target format' restates required parameters, so it is not maximally tight.

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

Completeness4/5

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

For a 3-param tool with no output schema, the description adequately covers accepted inputs, output delivery as a downloadable file, and workflow chaining. Error cases and the 5MB limit are not explained in the description, but the size limit is in the schema and error behavior is not essential for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful semantics by introducing an undocumented inline 'input' string alternative and confirming that 'from' is inferred when omitted. The only caveat is that 'input' is not present in the schema, which could confuse strict validation.

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

Purpose4/5

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

States a specific verb (convert), resource (data file), and enumerates the supported formats, which distinguishes it from document/media converters in the sibling list. It does not explicitly name or exclude overlapping siblings like convert_file or convert_text, so it falls just short of full differentiation.

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

Usage Guidelines3/5

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

Gives clear operational guidance: upload a file, pick a target format, or pass inline text, and notes the downloadable-file behavior for workflow chaining. It does not state when to prefer this tool over convert_file/convert_text/convert_batch, nor any when-not-to-use conditions, so usage is implied rather than explicit.

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

convert_documentAInspect

Document Converter — Office & document converter — DOCX/DOC/ODT/RTF/XLSX/XLS/ODS/CSV/PPTX/PPT/ODP/HTML/EPUB/TXT → PDF plus office round-trips (csv→xlsx, docx→odt, epub→pdf) via LibreOffice; MARKDOWN → pdf/docx/html/epub/txt via pandoc with real GFM semantics (headings, lists, tables, code fences); and DOCX/HTML/PDF → MARKDOWN (the LLM-ingestion direction — turn a document into clean GFM an agent can read; PDF via text-layer extraction); plus Jupyter notebooks (.ipynb) → pdf/html/docx/md via pandoc. Pass 'from' so the converter knows the source format. For images/audio/video use convert_file; for data-text transforms use convert_data. Capability envelope: a PDF source extracts to text/markdown only (to=md) — for editable output from a PDF use pdf_to_word / pdf_to_excel / pdf_to_text / pdf_to_images. Office conversions are same-category only (Word↔Word, Sheet↔Sheet, Slides↔Slides) plus any→pdf; cross-category conversions (e.g. Word→slides, Sheet→Word) are not supported. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget format. Must differ from 'from'. Markdown INPUT converts to pdf, docx, html, epub, txt. Markdown OUTPUT ('md') is supported from docx, html, pdf (text extraction), and ipynb. Jupyter notebooks (ipynb) convert to pdf, html, docx, md.
fileYesMax 25 MB. Routed by filename extension first; the 'from' field is the fallback for synthetic/extensionless names.
fromYesSource format — REQUIRED on this path (extensionless uploads can't be sniffed reliably; this drives the converter engine). 'md' = markdown (GFM); 'ipynb' = Jupyter notebook.

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses significant behavioral detail: the conversion engines used (LibreOffice, pandoc), PDF text-layer extraction, the requirement to pass 'from', the same-category-only restriction for Office files, and the markdown-round-trip capabilities. It also names capability boundaries explicitly with 'Capability envelope', which goes well beyond what annotations express.

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

Conciseness4/5

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

The description is long, but the tool is genuinely complex with many format families and conversion directions. It is front-loaded with the format list and uses clear separators plus a labeled 'Capability envelope' section. Some density could be eased, but every clause contributes operational meaning; no filler is present.

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

Completeness5/5

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

For a tool with three required parameters and no output schema, the description covers the important decision surface completely: accepted formats, conversion directions, unsupported cross-category cases, sibling fallbacks, and parameter semantics. An agent has enough context to select this tool and invoke it correctly without guessing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds extra meaning on top of the schema: 'from' is emphasized as REQUIRED because extensionless uploads can't be sniffed, the file routing rule is clarified (extension first, 'from' as fallback), and the valid source-to-target combinations are summarized. This exceeds the bare schema definitions.

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

Purpose5/5

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

The description names a specific verb and resource: it converts documents across a broad set of formats, and it explicitly separates itself from convert_file (images/audio/video) and convert_data. It details both the input and output directions, so an agent can distinguish it from siblings without opening the schema.

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

Usage Guidelines5/5

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

The description gives explicit routing guidance: 'For images/audio/video use convert_file; for data-text transforms use convert_data.' It also states when to prefer dedicated PDF tools (pdf_to_word, pdf_to_excel, etc.) and enumerates unsupported conversion categories. This is strong when-to-use / when-not-to-use guidance.

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

convert_ebookAInspect

eBook Converter — Convert ebooks between formats with calibre: mobi, azw3, fb2, lit and pdf → EPUB, plus epub → mobi/azw3 for older devices. EPUB is the format modern Kindles accept for send-to-device, so →epub is the recommended direction. DRM-protected books cannot be converted. pdf→epub reflows fixed pages, so quality varies with layout complexity; epub→pdf is handled by convert_document (LibreOffice). [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget format. EPUB is the recommended direction.
fileYesThe ebook itself. Bytes are sniffed and must match 'from' (mismatch = 400). DRM-protected books always fail.
fromYesSource ebook format — REQUIRED.

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the minimal annotations, the description discloses that DRM-protected books always fail and that pdf→epub reflows fixed pages causing quality to vary with layout complexity. It does not contradict annotations and adds meaningful runtime behavior, though it doesn't describe the return artifact or other side effects.

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

Conciseness4/5

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

The description is dense and front-loaded with the operation, formats, recommendations, and caveats. The redundant 'eBook Converter —' prefix and trailing '[category: convert]' tag add minor noise, but the core content is efficiently organized.

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

Completeness4/5

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

For a 3-parameter conversion tool with full schema descriptions and no output schema, the description covers the key decisions: direction, quality caveat, DRM limitation, and routing. The main residual gap is the undocumented meaning of to=pdf and the lack of any statement about the returned artifact, which keeps it just below a 5.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description adds value by constraining valid source→target directions and identifying epub→pdf as outside this tool's scope. Slight ambiguity remains because the to-schema includes pdf while the description only names epub/mobi/azw3 as targets, but the core format semantics are well-enriched.

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

Purpose5/5

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

States the core operation with a specific verb and resource: 'Convert ebooks between formats with calibre', and enumerates the supported direction pairs (mobi/azw3/fb2/lit/pdf → EPUB, epub → mobi/azw3). It also differentiates from convert_document by explicitly routing epub→pdf elsewhere, so an agent can identify the right tool without inspecting schemas.

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

Usage Guidelines5/5

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

Gives concrete selection criteria: EPUB is recommended for modern Kindles/send-to-device, DRM-protected books cannot be converted, and epub→pdf should go to convert_document (LibreOffice). This is an explicit when-to-use and when-not-to-use statement versus named alternatives.

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

convert_fileAInspect

Universal File Converter — Convert a file between formats: image↔image (jpg/png/webp/bmp/tiff/gif/avif/ico, plus heic/svg/psd as inputs), audio↔audio (mp3/wav/ogg/opus/flac/aac/m4a/wma/aiff, plus alac=Apple Lossless delivered as .m4a), video↔video/GIF (Business gate on some edges) plus legacy flv/wmv/3gp/mpg/vob/ts/m2ts → mp4, extract audio from video (mp4/mov/mkv/webm/avi → mp3/wav/aac/m4a/ogg/flac/opus/aiff/alac), subtitles (srt↔vtt, and srt/vtt→txt), DOC/DOCX/TXT→PDF, image→PDF, comic archive CBZ→PDF. Office/document conversions (xlsx, pptx, csv→xlsx, epub, html) live in convert_document; archives in convert_archive; data formats in convert_data. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget format, e.g. 'png', 'pdf', 'mp3'.
fileYesBytes are taken at face value as 'from' — no content sniffing; a wrong 'from' fails inside the engine, not with a clean 400.
fromYesSource format, e.g. 'jpg', 'mp3', 'docx' — REQUIRED and must match the uploaded file.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the minimal annotations (readOnlyHint=false, destructiveHint=false), the description discloses substantial behavior: which formats are input-only (heic/svg/psd), that alac is delivered as .m4a, that legacy video formats are re-encoded to mp4, audio-extraction paths, and subtitle conversions. This adds real behavioral context the annotations cannot convey.

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

Conciseness3/5

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

The content is dense and front-loaded with the core purpose, but the entire payload is one enormous run-on sentence crammed with slashes and parentheticals. Every item arguably earns its place, yet the lack of structural breaks (bullets or clauses) makes the format matrix harder to parse than it should be.

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

Completeness4/5

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

For a 3-parameter tool with no output schema and no enums, the description covers the supported domain remarkably well: all conversion families, input-only formats, output container caveats, and sibling routing. The main gap is that it never states what the response looks like (the converted file payload), which matters more given there is no output schema.

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

Parameters4/5

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

Schema coverage is 100% and each parameter has a description, so baseline is 3. The description adds value beyond the schema by effectively enumerating valid values for `to`/`from` (the full format lists) and clarifying pairings (e.g., image→image, audio→audio), which the schema does not constrain with enums. It supplements but does not fully duplicate the schema.

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

Purpose5/5

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

The description states a specific verb and resource ('Convert a file between formats') and enumerates the exact conversion matrix. It explicitly distinguishes itself from siblings by naming convert_document, convert_archive, and convert_data as the homes for Office, archive, and data conversions, so an agent can tell this tool apart without opening schemas.

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

Usage Guidelines5/5

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

The description explicitly routes non-matching workloads to named alternatives ('Office/document conversions ... live in convert_document; archives in convert_archive; data formats in convert_data') and flags the 'Business gate on some edges' for video conversions. This is explicit when-to-use vs when-not-to-use guidance.

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

convert_geoAInspect

GPS & Map Converter — Convert between GPX, KML, KMZ and GeoJSON — the GPS-track and mapping formats used by Garmin, Strava, Google Earth and every GIS tool. Track segments, per-point timestamps, elevations and polygon holes all survive the trip. Anything that cannot survive (a polygon becoming a GPX track, an unlocated feature) is reported in the X-Conversion-Notes header rather than dropped quietly; pass strict=true to refuse instead. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesMust differ from the detected source — gpx→gpx is a 400; format-version upgrades happen implicitly on read.
fileYesA .gpx, .kml, .kmz or .geojson file.
fromNoOptional. Detected from content; declare it only when the upload has no meaningful filename.
strictNoWhen true, refuse the conversion instead of returning a result that loses information.

TDQS

A4.1/5.0
Behavior4/5

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

The description goes well beyond the sparse annotations by disclosing that lossy conversions are reported in X-Conversion-Notes rather than silently dropped, and that strict=true changes behavior to refusal. It also lists which data features survive, adding meaningful operational insight.

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

Conciseness4/5

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

The description is dense but efficiently organized, leading with purpose, then preservation guarantees, then error-handling behavior. Minor stylistic flourishes like 'all survive the trip' do not waste space and reinforce user expectations.

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

Completeness4/5

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

For a four-parameter converter with no output schema, the description covers supported formats, preservation details, and lossy-conversion handling. It does not explicitly describe the response envelope, but the operation and schema make the returned converted file predictable.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter already described including the gpx→gpx 400 rule and strict behavior. The description's mention of strict=true merely echoes the schema, so it adds little over the structured input.

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

Purpose5/5

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

States a specific verb ('Convert') plus the exact resource set (GPX, KML, KMZ, GeoJSON), and names the GPS/mapping ecosystem. This clearly distinguishes it from sibling convert_* tools like convert_document or convert_video without needing to open schemas.

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

Usage Guidelines4/5

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

The description gives clear context by defining the supported geospatial formats and typical use cases (Garmin, Strava, Google Earth, GIS). It does not explicitly name alternative tools or when not to use this one, but the domain specificity makes selection straightforward.

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

convert_jpg_to_pdfBInspect

JPG to PDF — Convert one or more JPG/PNG images to a PDF document. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesInput files (JPG, PNG)

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already signal that this is not read-only and not destructive; the description adds that the tool takes one or more images and produces a PDF, which is useful. However, it does not disclose output format details, whether the images are merged in order, side effects, or any limits, so the behavioral context is minimal beyond the basic operation.

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

Conciseness4/5

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

The description is short and front-loaded, with the core action stated immediately. The leading 'JPG to PDF' and the '[category: convert]' tag are somewhat redundant given the tool name and sibling context, but the overall structure is still efficient and scannable.

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

Completeness3/5

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

For a simple one-parameter conversion tool, the description covers the input and output at a high level. However, there is no output schema and no guidance about how the resulting PDF is returned or how this differs from pdf_images_to_pdf, leaving some ambiguity in a large sibling toolset.

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

Parameters3/5

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

The schema already describes the only parameter as 'Input files (JPG, PNG)' with 100% coverage, so the schema carries the parameter meaning. The description adds the phrase 'one or more,' but this is already implied by the array type, so it provides little additional semantic value.

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

Purpose4/5

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

The description clearly states a specific verb ('Convert') and resource ('one or more JPG/PNG images to a PDF document'), so an agent can understand the core function. However, it does not distinguish itself from the closely related sibling pdf_images_to_pdf, and the leading 'JPG to PDF' essentially restates the tool name.

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

Usage Guidelines3/5

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

The description implies the tool should be used when JPG/PNG images need to be converted to a PDF, and it mentions the acceptable input formats. It does not explicitly say when to prefer this tool over alternatives like pdf_images_to_pdf, convert_file, or convert_batch, so the usage guidance is mostly implicit.

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

convert_parquetAInspect

Parquet Converter — Convert Apache Parquet to CSV, TSV, JSON, NDJSON or Excel — and back. Types are preserved in both directions: numbers stay numbers in JSON, blank cells become real nulls in Parquet, and identifier columns like '01924' stay text instead of losing their leading zero. Flat schemas only; nested or repeated columns are reported rather than silently flattened. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes'jsonl' is accepted as an alias for ndjson. One side of the pair must be parquet — table→table pairs belong to convert_data.
fileYesA .parquet file, or a .csv/.tsv/.json/.ndjson/.xlsx table to turn into Parquet.
fromNoOptional but recommended when uploading csv/tsv/json/ndjson: those are indistinguishable by content, so declare which one it is.
sheetNoOptional: when the source is .xlsx, which worksheet to read (default: the first).

TDQS

A4.4/5.0
Behavior5/5

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

Discloses substantial behavior beyond the sparse annotations: type preservation in both directions with concrete examples (numbers stay numeric, blanks become true nulls, '01924' keeps its leading zero), and explicit handling of nested/repeated columns as reported rather than silently flattened. No contradiction with readOnlyHint=false or destructiveHint=false.

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

Conciseness5/5

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

Three sentences with no waste: scope, behavioral guarantees with concrete examples, then the schema-shape constraint. Purpose is front-loaded before caveats, and the 'Parquet Converter —' opener anchors the reader before the action verb.

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

Completeness4/5

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

For a 4-parameter bidirectional converter with a fully covered schema, the definition is nearly complete: purpose, type behavior, and schema limitations are all addressed. The only gap is that the return value is never described (file download, link, etc.), which matters more given there is no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline of 3 applies; the schema already documents to, file, from, and sheet thoroughly, including the jsonl alias and the convert_data routing note. The description's type-preservation examples add background context for format choice but do not map to any specific parameter's usage.

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

Purpose5/5

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

States a specific action and resource — converts Apache Parquet to/from CSV, TSV, JSON, NDJSON, and Excel — with 'and back' making the bidirectional scope explicit. The flat-schema-only constraint further distinguishes it from generic table converters, so an agent can tell it apart from the many convert_* siblings without opening the schema.

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

Usage Guidelines4/5

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

The format list clearly defines when to use it (any conversion with Parquet on one side), and 'flat schemas only' is a stated when-not condition. It never names alternatives in the description itself, though the schema's to-parameter description compensates by routing table→table pairs to convert_data; full coverage of siblings like convert_file and convert_batch is absent.

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

convert_sqliteAInspect

SQLite Converter — Export a SQLite database (.db/.sqlite) to CSV, JSON or Excel. A database holds many tables, so the output adapts: CSV gives one file per table (zipped when there are several), JSON gives rows as objects (keyed by table when there are several), and Excel gives ONE workbook with one worksheet per table. Pass an optional 'table' to export just one. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesWith 2+ tables, csv arrives as a ZIP of per-table CSVs — pass 'table' when a downstream step needs one plain CSV. xlsx = always one file.
fileYesSQLite database file.
tableNoOptional: export only this table (must match a table in the database).

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses non-obvious output behavior: CSV produces one file per table and zips when there are several, JSON keys objects by table, and Excel always creates a single workbook with one worksheet per table. This goes well beyond the annotations, which only indicate readOnlyHint=false and destructiveHint=false.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, then expands into output-format specifics and the optional parameter in a compact, well-organized way. Every sentence earns its place, with only a minor category tag as light supplemental noise.

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

Completeness4/5

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

There is no output schema, so the description appropriately explains what the caller should expect from each target format, including multi-table behaviors. It is complete enough for the tool's moderate complexity, though it does not mention delivery mechanics or error conditions.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all three parameters well. The description adds some reinforcement, such as explaining that passing 'table' exports a single table, but it does not significantly extend the schema's parameter semantics.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Export a SQLite database (.db/.sqlite) to CSV, JSON or Excel.' This clearly identifies the tool's function and scope, and the format list differentiates it from generic sibling tools like convert_file or convert_data.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool — whenever a SQLite database needs converting to CSV, JSON, or Excel. It also explains usage trade-offs like CSV being zipped with multiple tables and when to pass the optional 'table' parameter, though it does not explicitly compare against alternative conversion tools.

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

convert_textAInspect

Text Converter — Convert text/data formats: Markdown↔HTML, CSV↔JSON, JSON↔XML/YAML, Base64 and URL encode/decode. Takes 'text' + 'from' + 'to' — there is no 'conversion_type' field. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget format: html, md, json, csv, xml, yaml, txt. Must differ from 'from'. Supported pairs: md↔html, csv→json/xml, json↔csv, json↔xml, json↔yaml, xml→json, any→txt; for encode/decode operations set to='txt'.
fromYesSource format or operation: md, html, csv, json, xml, yaml — or base64_encode, base64_decode, url_encode, url_decode (the operation rides in 'from').
textYesThe text/data to convert. Field name is 'text' — not 'content'.

TDQS

A4/5.0
Behavior3/5

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

Annotations only declare readOnlyHint=false, openWorldHint=false, destructiveHint=false. The description adds a helpful disambiguation warning, but does not clarify whether the operation is a pure in-memory conversion with no side effects or whether it writes output somewhere. Given readOnlyHint=false, the agent is left uncertain about side-effect behavior, though destructiveHint=false rules out destructive actions.

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

Conciseness5/5

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

Two efficient sentences deliver the core purpose, supported conversions, and critical parameter notes. The information is front-loaded and every clause earns its place. The trailing [category: convert] tag is minor metadata and does not add noise.

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

Completeness4/5

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

For a simple three-parameter converter with full schema coverage, the description covers the essential invocation details and supported pairs. It could be more complete by explicitly stating the return value (converted text in target format) and clarifying when to use alternative convert tools, but the current level is sufficient for correct basic invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by explicitly confirming the parameter names ('text', 'from', 'to') and warning that there is no 'conversion_type' field — a highly useful guard against a common hallucinated parameter. It also confirms that encode/decode operations ride in 'from', reinforcing the schema.

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

Purpose5/5

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

The description uses a specific verb (Convert) and resource (text/data formats), then enumerates the supported conversions (Markdown↔HTML, CSV↔JSON, JSON↔XML/YAML, Base64/URL encode-decode). This makes the tool's purpose unmistakable and distinguishes it from file-oriented siblings like convert_file or convert_archive by explicitly limiting scope to text/data formats.

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

Usage Guidelines3/5

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

The description implies usage through the supported format list and required parameters, but never explicitly states when to prefer this tool over the many similar convert_* siblings (e.g., convert_data, convert_document, convert_file). It gives no when-not-to-use guidance or alternative routing, so an agent must infer the boundary from the format list alone.

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

convert_unit_convertAInspect

Unit Converter — Convert between units of measurement: length, weight, temperature, volume, area, speed, time, and data sizes. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesSame rules as 'from', same category. Data units are binary (kilobyte = 1024 B); temperature accepts only celsius/fahrenheit/kelvin.
fromYesFull snake_case name ('kilometer', 'mile_per_hour'), not symbols. Temperature units aren't validated — a typo returns garbage.
valueYesJSON number, not a string. Negatives are valid (temperatures, deltas).
categoryYesOne of: length, weight, area, volume, speed, time, data, temperature. Anything else = 400.

TDQS

A3.9/5.0
Behavior3/5

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

The description communicates the core conversion behavior and category scope but adds little behavioral detail beyond the annotations. Important caveats such as 'temperature units aren't validated — a typo returns garbage' and 'data units are binary' live in the schema rather than the description. There is no contradiction with readOnlyHint=false or destructiveHint=false.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler beyond the redundant 'Unit Converter —' prefix, which repeats the title. Overall it is compact and scannable.

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

Completeness4/5

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

For a simple four-parameter conversion tool with fully described schema fields, the description supplies enough scope to select the tool correctly. The only minor gap is that no output format is described, though the expected result of a unit conversion is fairly predictable.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema thoroughly documents value, from, to, and category, including snake_case naming, binary data units, and temperature restrictions. The description only adds high-level category context, so it does not meaningfully extend the schema's parameter guidance.

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

Purpose5/5

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

The description states a specific operation, 'Convert between units of measurement', and enumerates the supported categories: length, weight, temperature, volume, area, speed, time, and data sizes. This clearly distinguishes it from the many convert_file/convert_document/convert_data siblings.

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

Usage Guidelines4/5

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

The description clearly frames when to use the tool: whenever a unit conversion between named measurement categories is needed. It does not explicitly name alternatives or exclusions, but no sibling tool appears to cover unit conversion, so the context is sufficient.

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

convert_url_to_pdfAInspect

Webpage to PDF — Convert a live web page (URL) to PDF. Fetches the page and every asset server-side through an SSRF-guarded fetcher, inlines them, and renders offline — pass a JSON-body 'url'. JavaScript is NOT executed (static rendering), so SPAs may render sparsely. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe http(s) URL of the web page to render to PDF.

TDQS

A4.5/5.0
Behavior5/5

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

The description discloses significant behavior beyond annotations: the SSRF-guarded fetcher, server-side asset fetching and inlining, offline rendering, and the static-rendering limitation. This is exactly the kind of behavioral context that helps an agent predict side effects and failure modes.

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

Conciseness5/5

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

The description is compact but information-dense: it front-loads the core purpose, then covers mechanism, security, and limitations in a few sentences. Every clause adds value, and there is no redundant filler.

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

Completeness5/5

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

For a simple one-parameter conversion tool, the description is complete enough: it explains what it converts, how it fetches and renders, the key security trait, and the main limitation. No output schema exists, but the output is clearly implied by 'to PDF', and nothing essential is missing.

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

Parameters3/5

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

The input schema already fully documents the single 'url' parameter with a clear description, so the baseline is 3. The description adds a small amount of extra meaning by specifying that the URL should be passed as a JSON-body property, but this is marginal beyond the schema.

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

Purpose5/5

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

The description names a specific verb (Convert), a specific resource (a live web page/URL), and a concrete output (PDF). It also distinguishes itself from HTML-to-PDF or file-conversion siblings by emphasizing 'live web page' and 'server-side fetcher'.

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

Usage Guidelines4/5

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

The description gives clear context for when the tool is appropriate: converting a live URL to PDF. It also provides an important when-not signal by stating JavaScript is not executed, so SPAs may render sparsely. It stops short of naming an alternative tool explicitly, which keeps it just below a 5.

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

convert_videoAInspect

Video Converter — Convert a video so it PLAYS or IMPORTS where it currently will not: a camera, phone or camcorder recording that your editing software, media player, website or social platform refuses to accept, open or upload. Converts between mp4, mov, webm, mkv, avi, and animated GIF with codec/resolution/bitrate control and TikTok/Reels/Shorts/Twitter/WhatsApp presets. Also converts legacy formats (flv, wmv, 3gp, mpg, vob, ts, m2ts) to mp4. Free tier covers mp4/mov/webm at ≤720p; mkv, avi, gif, 1080p+ and AV1 require Business. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesmkv, avi and gif need Business. GIF output is palette-optimized and defaults to 480p unless 'resolution' says otherwise.
fileYesMax 500 MB; duration ≤5 min on Free, 30 min on Business. Format is sniffed from bytes; the filename extension is the fallback when sniffing fails.
codecNo'auto' picks the container's default. h265 and av1 need Business; a codec the container can't hold 400s.
resolutionNoDefault 'source' = no scaling. 1080p and 2160p need Business. Scales by height only; aspect ratio preserved.
preset_nameNoBusiness-only. Wins over 'to', 'codec', 'resolution' and 'bitrate_kbps' — every preset forces h264 mp4.
bitrate_kbpsNoGiving it switches rate control to ABR (a size target) and beats 'crf'. Omit for CRF quality mode.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the read-only/destructive profile, and the description adds useful behavioral context: free-tier format/resolution restrictions, AV1 Business gating, and legacy-to-mp4 conversion behavior. It doesn't discuss output destination or original-file preservation, but destructiveHint=false plus the conversion framing makes that omission acceptable.

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

Conciseness4/5

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

The description is front-loaded with the purpose and trigger, then moves to supported formats, presets, legacy coverage, and tier limits. A few words are redundant ('Video Converter—' repeats the name), but every sentence carries distinct, useful information.

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

Completeness4/5

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

Together with the schema, the description covers the main selection and invocation concerns: what triggers the tool, which formats/codecs/resolutions are supported, and which require Business. There is no output schema, so a brief statement about the return value would have made it complete, but the conversion outcome is predictable from the target format.

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

Parameters3/5

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

Schema description coverage is 100% and the parameter descriptions are rich (preset precedence, GIF palette optimization, CRF vs ABR). The tool description only summarizes 'codec/resolution/bitrate control', adding no detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

The description opens with a specific trigger—'Convert a video so it PLAYS or IMPORTS where it currently will not'—and names concrete source/target formats, presets, and legacy-format support. This clearly identifies the tool as the compatibility-focused video converter and separates it from the many convert_*/media_* siblings.

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

Usage Guidelines4/5

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

It gives a clear use case: when a player, editor, website, or social platform refuses a recording. It also states free-tier limitations and Business-only formats, implicitly telling an agent when the tool is not usable on a given plan. It does not explicitly name alternatives like media_compress_video or media_trim_video, so it stops short of a 5.

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

convert_word_to_pdfAInspect

Word to PDF — Convert a Word document (.docx, .doc) to PDF using LibreOffice. [category: convert]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (DOCX, DOC)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already carry the safety profile (readOnlyHint=false, destructiveHint=false), and the description adds the LibreOffice engine and accepted formats beyond that. It does not disclose output behavior (returned file vs. link) or limitations like size or .doc fidelity, though the simple schema lowers the burden.

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

Conciseness4/5

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

The description is a single front-loaded sentence that states the action immediately. The '[category: convert]' tag is mild redundancy given the convert_ prefix, but it adds no significant bloat.

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

Completeness3/5

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

For a one-parameter converter with no output schema, the description covers the input side adequately. It does not state what the tool returns after conversion, and given dozens of convert siblings, a routing hint toward/away from convert_document or pdf_to_word would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% and the single 'file' parameter is described as 'Input file (DOCX, DOC)' in the schema itself. The description repeats the format scope but adds no new parameter-level meaning, so the high-coverage baseline of 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource: 'Convert a Word document (.docx, .doc) to PDF using LibreOffice.' The explicit format coverage (.docx/.doc) and target output (PDF) distinguish it from the many convert_* and pdf_* siblings without needing to open the schema.

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

Usage Guidelines3/5

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

Usage is implied by the name and format details — an agent can infer 'when a Word file needs PDF output.' However, no alternatives or exclusions are mentioned, which is a gap given the broad sibling list includes convert_document, convert_file, convert_batch, and pdf_to_word (the reverse operation).

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

describe_imageA
Read-only
Inspect

Describe Image — Look at an image with a vision model and answer a question about it — what it shows, whether it's blurry or usable, visible text, etc. Business plan only. [category: content] [requires the business plan]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesThe image to look at
questionNoWhat to answer about the image (optional — defaults to a concise description)

TDQS

A3.7/5.0
Behavior4/5

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

The description supplements the readOnlyHint annotation by explaining the underlying mechanism (vision model) and gives concrete behavioral examples such as detecting blurriness or visible text. It also discloses the business plan access requirement. No contradiction 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.

Conciseness4/5

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

The description is short, front-loaded, and easy to parse. The only minor redundancy is that the business plan requirement appears both in prose and as bracketed metadata, which slightly weakens editorial precision.

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

Completeness4/5

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

For a simple read-only image description tool, the description covers the tool's purpose, mechanism, access restriction, and typical use cases. It does not specify the exact output format, but 'answer a question' adequately implies a text response.

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

Parameters3/5

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

The input schema already fully documents both parameters, including that question is optional and defaults to a concise description. The description adds illustrative examples of what the question can cover, but those are helpful examples rather than essential semantic details.

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

Purpose4/5

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

The description clearly states the action: look at an image with a vision model and answer a question about it. It gives concrete examples of what the tool can report (contents, blurriness, usability, visible text). However, it does not explicitly distinguish itself from overlapping siblings like analyze_image_quality or photo_to_text.

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

Usage Guidelines3/5

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

The use case is implied: use when you need a natural-language answer or description of an image's contents. There is no explicit when-to-use versus alternatives guidance, and the only explicit constraint is the business plan requirement.

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

email_fileAInspect

Email My File — Email a finished file to the signed-in user's OWN email address, with the file attached. The recipient is ALWAYS the current user — this tool cannot email anyone else and cannot send custom or user-authored content. Use ONLY when the user explicitly asks to have a result emailed to them. [category: utility]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesThe file to email — a file_id, typically the previous step's output.
noteNoOptional one-line note to include in the email body.
subjectNoOptional subject line. Defaults to 'Your file is ready'.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only indicate readOnlyHint=false and openWorldHint=true. The description adds meaningful behavioral constraints: the recipient is always the current user, the tool cannot email anyone else, and it cannot send custom or user-authored content. This goes beyond the annotation data and prevents misuse.

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

Conciseness5/5

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

The description is compact and front-loaded, stating the core action in the first sentence and then adding important restrictions and usage guidance. Every sentence earns its place with no redundancy.

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

Completeness5/5

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

For a simple utility tool with three well-documented parameters and no output schema, the description provides all necessary context: what it does, who can receive the email, what content can be included, and when to use it. Nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter already has a clear description. The tool description adds general context about the recipient and email restrictions but does not add new parameter-level meaning beyond what the schema provides. A baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb+resource: 'Email a finished file to the signed-in user's OWN email address.' It clearly states the tool's scope and its key limitation (cannot email anyone else), so an agent can distinguish it from the broader utility and sharing toolset.

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

Usage Guidelines5/5

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

The description explicitly says 'Use ONLY when the user explicitly asks to have a result emailed to them.' This gives a clear, actionable condition for when the tool should be selected and rules out using it for emailing other people or sending custom content.

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

esign_placeAInspect

PDF E-Signature — Place signature, initial, date or text fields onto a PDF — draw or type a signature — and (Pro+) append a cryptographic ed25519 audit trail. Free tier: 3 signed documents per month. [category: sign]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesPDF to sign
fieldsYesJSON array of field placements: [{page,x,y,w,h,type,value,font_size,image_b64}]

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish that the tool is not read-only and not destructive. The description adds useful behavior context: the Pro+ ed25519 audit trail and the free-tier limit of 3 signed documents per month. It does not state whether the original file is overwritten or how quota exhaustion is handled, but the annotation baseline lowers the burden.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action, followed by quota and category context. The 'PDF E-Signature' opener is slightly redundant with the title, and the category tag adds mild noise, but every sentence contributes useful information.

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

Completeness3/5

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

With no output schema, the description does not explain what the tool returns (e.g., signed PDF bytes or a file reference) or how quota-exceeded attempts behave. It also leaves unclear whether the input PDF is modified in place or a new file is produced. However, the input schema is fully covered and the quota/audit context is present, making the core invocation mostly understandable.

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

Parameters4/5

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

The schema already documents the two parameters and the fields JSON structure at 100% coverage. The description adds meaning by enumerating the expected field types (signature, initial, date, text) and indicating draw-or-type signature input, which clarifies plausible values for 'type' and 'image_b64'. It does not document coordinate units or other per-field constraints, so it is not a 5.

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

Purpose4/5

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

The description uses a concrete verb ('Place') and names the PDF as the target, listing the supported field types (signature, initial, date, text) and signature input modes (draw or type). It is clearly distinct from PDF conversion and analysis tools, though it does not explicitly differentiate itself from the sibling esign_prepare, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no explicit guidance about when to use this tool versus alternatives such as esign_prepare or other PDF tools. The free-tier cap is a constraint, not a usage rule, and no exclusion conditions or alternative recommendations are provided.

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

esign_prepareAInspect

E-Sign: Prepare — Return page count and per-page point dimensions for a PDF so signature fields can be positioned by the editor. [category: sign]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A4/5.0
Behavior3/5

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

The description clearly states what the tool returns, which is helpful. However, annotations mark readOnlyHint as false, implying possible side effects, but the description does not disclose any state changes, storage, or session behavior. It avoids contradicting the annotations but leaves the side-effect profile ambiguous.

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

Conciseness5/5

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

A single, front-loaded sentence states the action, the resource, the output, and the purpose. The trailing [category: sign] is compact metadata. There is no filler or repetition.

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

Completeness4/5

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

With one parameter, no output schema, and a simple purpose, the description covers the essential return values and context. It does not specify the exact output format or failure behavior, but for this low-complexity tool the description is largely sufficient for an agent to select and invoke it.

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

Parameters3/5

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

Schema description coverage is 100% for the only parameter, file, which is already documented as 'Input file (PDF).' The description adds nothing about the parameter beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: 'Return page count and per-page point dimensions for a PDF.' It also explains the purpose—positioning signature fields—which clearly distinguishes this from generic PDF tools like pdf_page_count or pdf_file_info and from the sibling esign_place.

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

Usage Guidelines4/5

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

The phrase 'so signature fields can be positioned by the editor' gives clear context for when this tool should be used: in an e-sign workflow before placing signatures. It does not explicitly mention when not to use it or name alternative siblings, but the intended context is apparent.

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

generate_ascii_artAInspect

ASCII Art Generator — Convert text or an image to ASCII art. Mode 'text' (default) requires 'text'; mode 'image' requires 'file'. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoImage to convert. REQUIRED when mode=image (max 10MB).
fontNoFIGlet font name (default 'standard').standard
modeNo'text' (default) renders 'text' via figlet+'font'; 'image' converts 'file' at 'width' chars. Any other value 400s.text
textNoText to render. REQUIRED when mode=text (the default). Truncated at 100 characters.
widthNoOutput width in characters, 40-200 (mode=image).

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate this is not read-only and not destructive, and the description adds the behavioral mode dependency (text vs. image input). It does not disclose return format, error behavior, or side effects beyond conversion, but for a simple generator the provided context is acceptable.

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

Conciseness4/5

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

The description is a single efficient sentence that front-loads the main purpose and then adds the key mode distinction. The lead-in 'ASCII Art Generator' is slightly redundant with the tool name, but the overall structure is tight and scannable.

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

Completeness4/5

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

For a tool with moderate complexity, the description plus a fully documented schema covers the essential calling requirements: modes, required inputs, default behavior, and constraints. There is no output schema, but the tool's output is implied by the purpose and the schema fills the remaining operational details.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all five parameters. The description's mention of mode/text/file requirements adds no new meaning beyond what the schema already states, which keeps this at the baseline of 3.

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

Purpose4/5

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

The description states a specific verb and resource — 'Convert text or an image to ASCII art' — which clearly identifies what the tool does. The mode note adds precision, but it does not explicitly compare against siblings like generate_qr_code or generate_barcode, so it stops short of full differentiation.

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

Usage Guidelines3/5

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

The description gives concrete usage conditions for the two modes: text mode requires 'text' and image mode requires 'file'. However, it does not explicitly state when to prefer this tool over alternatives or when not to use it, leaving sibling routing largely to the agent's inference.

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

generate_barcodeAInspect

Barcode Generator — Generate a barcode (Code128, EAN-13, DataMatrix, PDF417, etc.) as a PNG image. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoSymbology. Unknown types fall back to code128.code128
heightNoOutput height in px. Width is derived automatically (height×3; square for qr/datamatrix) — there is no 'width' parameter.
contentYesThe data to encode

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already mark the tool as generative and non-destructive, and the description adds the key output trait: the result is a PNG image. For a low-risk generation tool this covers the main behavioral contract, though it does not explain how the image is returned.

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

Conciseness4/5

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

The key action and output format are front-loaded in a short, readable sentence, with schema details left to the structured fields. The opening 'Barcode Generator' duplicates the title and the [category: generate] tag is marginal, so it is not a perfect 5.

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

Completeness4/5

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

With all parameters described in the schema and the description naming the PNG output, an agent has enough information to invoke this tool correctly for a simple generation task. The main missing piece is guidance for QR-only requests, which could otherwise be routed to generate_qr_code.

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

Parameters3/5

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

The input schema documents all three parameters, including defaults, bounds, and the type enum, so the baseline applies. The description adds only a few human-readable symbology examples without contributing new constraints beyond the schema.

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

Purpose4/5

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

The description clearly states the action (generate a barcode), the resource, and the output format (PNG), and gives example symbologies that signal scope. It does not explicitly distinguish itself from the closely related sibling generate_qr_code, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool instead of alternatives such as generate_qr_code, nor does it mention that the schema supports QR. The only usage hint is the generic [category: generate] tag, which is not sufficient for an agent to route between related generators.

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

generate_business_cardAInspect

Business Card Generator — Generate a printable business card (PDF or PNG) from name, job title, company, and contact details. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoPrinted verbatim in the contact block — no validation, no mailto link; empty = line omitted.
phoneNoPrinted verbatim in the contact block; empty = line omitted. No formatting applied.
formatNo'pdf' (default) or 'png' (300 DPI Ghostscript raster, 1050x600). Any other value silently returns the PDF.pdf
companyNoPrinted under the name; omitted entirely when empty. Latin-1 only — CJK/emoji glyphs render as '.'.
websiteNoPrinted exactly as sent — strip 'https://' yourself if unwanted; empty = line omitted.
fullNameYesFull name printed on the card. Field name is 'fullName' — not 'name'.
jobTitleNoJob title. Field name is 'jobTitle' — not 'title'.
templateNoCard template, e.g. modern or classic.modern
primaryColorNoHex color WITHOUT the leading '#'.1a1a2e
secondaryColorNoHex color WITHOUT the leading '#'.E05535

TDQS

A3.7/5.0
Behavior3/5

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

Annotations only provide readOnlyHint=false and destructiveHint=false, so the 'Generate' action and PDF/PNG output add modest behavioral context. However, the description does not disclose quirks like the silent PDF fallback for invalid format values or Latin-1 rendering limits; those details are only visible in parameter descriptions.

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

Conciseness4/5

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

The description is a single front-loaded sentence that conveys the core action, inputs, and output formats. The 'Business Card Generator' title-like prefix is mildly redundant with the tool name, but it does not detract meaningfully from clarity.

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

Completeness4/5

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

With 100% schema coverage and no close sibling ambiguity, the description covers the essentials: what is generated, from what data, and in which formats. It does not explicitly describe the return artifact type, but 'printable business card (PDF or PNG)' sufficiently implies a file output for this class of tool.

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

Parameters3/5

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

Schema description coverage is 100%, and the parameter descriptions already carry rich semantics such as 'no leading #', 'fullName' not 'name', and empty-string line omission. The tool description only lists general fields and adds no parameter meaning beyond what the schema provides, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb ('Generate'), a specific resource ('business card'), and the output formats (PDF or PNG), sourced from name, job title, company, and contact details. The resource is distinct enough to differentiate it from other generate_* siblings.

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

Usage Guidelines3/5

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

The description implies the tool should be used when a business card is needed, but it does not explicitly state when to prefer this tool over alternatives or any exclusions. Since no sibling is functionally close, the context is adequate though not explicit.

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

generate_certificateBInspect

Certificate Generator — Generate a printable certificate of achievement or completion as PDF or PNG. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoFree text centred at the bottom, printed verbatim ('12 June 2026' works); empty = omitted.
formatNo'pdf' (default) or 'png' (300 DPI Ghostscript raster). Any other value silently returns the PDF.pdf
templateNoAccepted but does NOT change the layout — every template renders identically today; use borderStyle for the look.achievement
certTitleNoCertificate heading. Field name is 'certTitle' — not 'title'.Certificate of Achievement
issuerNameNoPrinted above the signature line. Empty hides the WHOLE issuer block, issuerTitle included.
borderStyleNoUnknown values fall back to gold. This is the main visual lever — it colours border, corners, and title.gold
descriptionNoOptional body text under the title.
issuerTitleNoItalic line under the signature — rendered only when issuerName is also set.
orientationNo'landscape' (default) or 'portrait' (A4). Any value other than 'portrait' renders landscape.landscape
recipientNameYesRecipient's name (REQUIRED). Field name is 'recipientName' — not 'recipient'.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations are minimal (all-false hints: not read-only, not destructive, closed-world), and the description adds the output format (PDF/PNG) and printability, which is consistent with a file-generation tool. The genuinely valuable behavioral disclosures — template is a no-op, unknown enum values silently fall back, issuerName empty hides the WHOLE issuer block, invalid orientation renders landscape — live in the schema descriptions, not the description. No contradiction 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.

Conciseness4/5

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

The core description is one efficient, scannable sentence with the resource and output formats front-loaded. The 'Certificate Generator —' prefix is redundant with the tool name and title, and the '[category: generate]' suffix adds marginal value, but there is no bloat or repetition beyond that.

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

Completeness3/5

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

For a 10-parameter tool with no output schema, the description alone is thin, but the schema descriptions are so thorough that invocation is well-supported: every enum has fallback documentation, every dependency is spelled out, and the required field is flagged with a naming caution. The gaps are tool-selection context and explicit return semantics (file versus link/path), which neither the description nor an output schema covers.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 per the rubric. The schema descriptions are exemplary: they document defaults, silent fallbacks ('Any other value silently returns the PDF'), field-name gotchas ('Field name is "certTitle" — not "title"'), and conditional rendering (issuerTitle only when issuerName is set). The description itself contributes zero parameter semantics, but the schema fully compensates.

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

Purpose4/5

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

The description states a specific verb and resource: 'Generate a printable certificate of achievement or completion as PDF or PNG.' This clearly distinguishes it from most generate_* siblings (barcode, invoice, QR code, etc.). However, the 'Certificate Generator —' prefix merely restates the tool name/title, and the differentiation from sibling document generators like generate_business_card or generate_invoice is implicit rather than explicit.

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

Usage Guidelines3/5

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

The use case is implied by the wording 'certificate of achievement or completion' — an agent can infer it's for issuing formal certificates. But the description offers no explicit when-to-use guidance, no exclusions, and no routing to alternatives such as generate_invoice or generate_business_card for other document types. Tool-selection context is left entirely to inference.

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

generate_faviconAInspect

Favicon Generator — Generate a favicon set (ico + png sizes) from a source image, with optional rounded corners. This is the tiny icon a browser shows in the tab, beside a bookmark, and on a phone home screen — without one, visitors see a blank page symbol next to your site's name. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesSource image (PNG, SVG, JPG — max 20MB)
includeIcoNoAlso generate favicon.ico.
borderRadiusNoRounded-corner radius as a percent (0-50).

TDQS

A3.8/5.0
Behavior3/5

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

Annotations carry very little (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the description must disclose behavior. It does state the output composition (ico + png sizes) and the transformation inputs (source image, rounded corners), consistent with annotations. However, it doesn't disclose the return format, how outputs are delivered (download? URLs? zip?), or which PNG sizes are produced, and there is no output schema to compensate.

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

Conciseness4/5

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

The core action is front-loaded in the first sentence, and the second sentence earns its place by explaining the real-world value prop (prevents blank-page symbol). The '[category: generate]' tag is mildly redundant since the name already signals the category, but it's a minor cost. Overall tight and well-ordered.

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

Completeness3/5

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

The invocation contract is fully covered: one required source file documented in the schema, two optional parameters with defaults and bounds. The main gap is the tool's return value — there is no output schema and the description never states what format the generated favicon set comes back in, which an agent needs to relay results to the user. Adequate for invocation, incomplete for post-call handling.

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

Parameters3/5

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

Schema description coverage is 100% — file, includeIco, and borderRadius each have clear descriptions with constraints and defaults already in the schema. The description only echoes 'optional rounded corners' and the 'ico + png' output, adding no meaning beyond what the schema provides, so the baseline 3 applies.

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

Purpose5/5

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

The description opens with a specific verb+resource construction: 'Generate a favicon set (ico + png sizes) from a source image, with optional rounded corners.' It identifies the artifact, the input, and the transformation applied, and the favicon explanation (browser tab, bookmark, home screen) clearly distinguishes it from sibling generate_* tools like generate_barcode, generate_qr_code, and generate_placeholder_image.

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

Usage Guidelines4/5

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

The description gives clear context for when the tool is needed — it explains what a favicon is, where it appears (tab, bookmark, phone home screen), and the symptom of not having one (blank page symbol). This grounds the agent in the website-favicon scenario without ambiguity. It stops short of explicitly naming alternatives or stating when-not-to-use, hence 4 rather than 5.

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

generate_hashAInspect

Hash Generator — Compute MD5, SHA-1, SHA-256, and SHA-512 hashes of text (or an uploaded file). Always returns all four — there is no algorithm selection and bcrypt is not supported. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoOptional file to hash instead of text.
textYesText to hash. Required unless 'file' is provided.

TDQS

A4/5.0
Behavior4/5

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

The description discloses key behavior beyond the sparse annotations: it always returns all four hash types, there is no algorithm selection, and bcrypt is not supported. It does not describe the exact output format, but the core behavioral expectations are clear.

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

Conciseness5/5

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

The description is compact and well-ordered: purpose and supported algorithms come first, followed by behavioral constraints. Every sentence carries useful information with no padding.

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

Completeness3/5

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

For a simple two-parameter tool, the description covers accepted inputs, supported algorithms, and key constraints. However, the unresolved text-versus-file requirement conflict and the lack of any output shape detail leave enough ambiguity that an agent may struggle to invoke the tool correctly on file-only inputs.

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

Parameters2/5

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

The schema already documents both parameters, so the baseline is 3, but the description fails to clarify a real ambiguity: the schema marks 'text' as required while both the tool description and the text parameter's own description imply 'text' can be omitted when 'file' is provided. An agent cannot confidently determine whether file-only invocation is valid.

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

Purpose5/5

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

The description states a specific verb and resource: computing MD5, SHA-1, SHA-256, and SHA-512 hashes of text or an uploaded file. It also distinguishes itself by explicitly noting that it always returns all four hashes and does not support algorithm selection or bcrypt.

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

Usage Guidelines4/5

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

The description clearly indicates what inputs the tool accepts (text or file) and gives an exclusion: no algorithm selection and no bcrypt. However, it does not name an alternative tool or explicitly state when a user should choose a different tool.

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

generate_invoiceAInspect

Invoice Generator — Generate a professional PDF invoice from line items, client details, and company info. Takes a JSON body (camelCase fields), not form fields. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesLine items. Keys MUST be description/quantity/unitPrice — other keys are silently ignored and amounts render as 0.
notesNoWrapped text under a 'Notes / Terms' heading at the bottom; empty hides the section.
dueDateNoFree text printed as 'Due: <value>' — never parsed or validated; empty hides the line.
currencyNoSets the printed symbol ONLY — no conversion. Unknown codes print '$'; INR prints 'Rs'.USD
clientNameYesClient name (REQUIRED). Field name is 'clientName' — not 'client_name'.
taxPercentNoPercent of subtotal added on top. Unvalidated; the tax row appears only when greater than 0.
clientEmailNoPrinted in BILL TO under the client name; empty = line omitted. Never validated.
companyNameYesIssuing company name (REQUIRED).
invoiceDateNoFree text printed as 'Date: <value>' — never parsed; empty hides the line.
companyEmailNoPrinted in the issuer header block; empty = line omitted. Never validated.
companyPhoneNoPrinted in the issuer header block; empty = line omitted.
clientAddressNoOne printed line under BILL TO — no wrapping, so keep it short; empty = line omitted.
invoiceNumberNoAuto-generated 'INV-<8hex>' when omitted.
companyAddressNoOne printed line in the issuer header — no wrapping; empty = line omitted.
discountPercentNoPercent of subtotal subtracted. Unvalidated — over 100 yields a negative total. Row hidden when 0.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already signal readOnlyHint=false and destructiveHint=false; the description adds that the tool produces a PDF and expects JSON input. It doesn't disclose return/delivery behavior, auth requirements, or side effects, but the core output type is stated and no contradiction with annotations exists.

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

Conciseness4/5

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

The description is short and front-loads the main action, with no filler beyond the useful '[category: generate]' tag. It loses one point because 'Invoice Generator —' mostly duplicates the annotation title, creating slight redundancy before the actual verb.

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

Completeness4/5

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

This is a 15-parameter tool with no output schema, but the schema descriptions cover required fields, defaults, formatting quirks, and conditional rendering, making the input side very complete. The description supplies the key JSON/camelCase framing and output type; only the exact return/delivery mechanism is left underspecified.

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

Parameters4/5

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

Schema coverage is 100% and the individual parameter descriptions are unusually rich, so the baseline is 3. The description adds meaningful invocation-level semantics—JSON body, camelCase fields, not form fields—and groups the inputs into line items, client details, and company info, which goes beyond what the schema alone provides.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Generate a professional PDF invoice' from line items, client details, and company info. This makes the tool immediately distinguishable from sibling generate_* tools such as generate_certificate or generate_barcode without requiring schema inspection.

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

Usage Guidelines4/5

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

It clearly sets the invocation context by stating the tool takes a JSON body with camelCase fields, not form fields, which is a critical calling-convention detail. It doesn't explicitly name alternatives or when-not-to-use, but among the sibling list it is the only invoice generator, so the intended 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.

generate_lorem_ipsumBInspect

Lorem Ipsum Generator — Generate lorem ipsum placeholder text by word count or paragraph count. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoUnit to generate. Field names are 'type' + 'count' — 'paragraphs'/'words_per_paragraph' do not exist.paragraphs
countNoHow many words/sentences/paragraphs to generate.
startLoremNoStart with the classic 'Lorem ipsum dolor sit amet' opening.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations provide little safety context (readOnlyHint: false, destructiveHint: false), so the description carries the burden. It adds that generation is driven by word or paragraph count, but it does not disclose whether the output is plain text, whether it is returned directly to the caller, or whether any file is created. For a simple generator this is a modest but acceptable transparency level.

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

Conciseness5/5

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

The description is a single front-loaded clause followed by a category tag, with no filler or redundant explanation. It is appropriately sized for a simple tool, even though it omits one supported mode, which is an accuracy issue rather than a conciseness issue.

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

Completeness4/5

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

For a simple generator with fully documented parameters and no output schema, the description covers the core purpose and main modes. Missing details such as exact return format or whether output is a file are not clearly stated, but 'placeholder text' strongly implies the result is returned text, making the definition mostly complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema; it reinforces the concept of count-based generation but does not explain parameter interplay or the startLorem option, which the schema already documents adequately.

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

Purpose4/5

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

The description clearly identifies the tool as generating lorem ipsum placeholder text and mentions word/paragraph count modes, so the resource and action are specific. However, it does not explicitly differentiate from sibling generators such as generate_placeholder_image, and it omits the 'sentences' mode that the schema supports, making it slightly incomplete.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus related alternatives like generate_placeholder_image or other text-generating tools. There are no when/when-not conditions or explicit exclusions; the intended usage must be inferred from the resource name and context.

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

generate_passwordAInspect

Password Generator — Generate a cryptographically secure random password with configurable length and character sets. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of passwords to generate.
lengthNoCharacters per password. Values over 256 silently clamp to 256; zero or negative resets to the default 16.
numbersNoInclude digits 0-9. Class flags work jointly: all four false/omitted = every class enabled.
symbolsNoInclude symbols from !@#$%^&*()-_=+[]{}|;:,.<>? — quotes, backslash, backtick, tilde and slash are never used.
lowercaseNoInclude lowercase letters. NOT implied by the other flags — sending only uppercase/numbers/symbols=true yields a password with no lowercase.
uppercaseNoInclude uppercase letters. If ALL four class flags (uppercase/lowercase/numbers/symbols) are omitted or false, all classes are used.
excludeSimilarNoExclude look-alike characters (iIlL1oO0).

TDQS

A3.8/5.0
Behavior3/5

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

Annotations establish readOnlyHint=false and destructiveHint=false, and the description's 'Generate' is consistent with those hints — no contradiction. The description adds genuine value with the 'cryptographically secure' trait, signaling to the agent that this is a CSPRNG-based generator suitable for real credentials rather than a toy. It does not surface edge-case behaviors like the all-flags-false fallback or length clamping, though those are already documented in the parameter schema.

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

Conciseness5/5

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

A single tight sentence front-loads the tool name and states the action, security property, and configurability with zero filler. The trailing '[category: generate]' tag is small and aids organization without adding noise.

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

Completeness4/5

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

For a tool with 7 fully-documented parameters and clear non-destructive annotations, the description gives an agent everything needed to decide to invoke it correctly. The only gap is the absence of a stated return shape (single string vs. array when count > 1), which is a platform gap given no output schema, and is largely self-evident for a password generator.

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

Parameters3/5

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

Schema description coverage is 100%, with every parameter fully explained in the input schema (including subtle behaviors like 'all four false/omitted = every class enabled' and clamping of length values). The description's high-level mention of 'configurable length and character sets' adds no meaning beyond that exhaustive coverage, so the baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource: 'Generate a cryptographically secure random password with configurable length and character sets.' The combination of 'Password Generator' title and 'password' scoping cleanly distinguishes it from the many sibling generate_* tools (generate_barcode, generate_qr_code, generate_hash, generate_invoice, etc.), which all have clearly different outputs.

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

Usage Guidelines3/5

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

Usage context is implied by the purpose statement — an agent can infer this tool is for producing secure random passwords whenever credentials are needed. However, there is no explicit when-to-use/when-not-to-use guidance and no alternative tools are named (e.g., no mention that generate_hash serves hashing rather than password generation), so the guidance stops at implication.

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

generate_placeholder_imageAInspect

Placeholder Image — Generate a placeholder image at any dimension with custom background colour and label text. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoLabel text. Defaults to '<width> × <height>'.
widthNoPixels wide. >4096 clamps to 4096; 0/omitted = 640. The default label text shows the FINAL clamped size.
formatNoSets the response MIME (png/jpg/jpeg/webp). Unrecognized values get mislabeled as PNG — stick to the enum.png
heightNoPixels tall. >4096 clamps to 4096; 0/omitted = 480.
bgColorNoBackground hex color, with or without '#'. Field name is 'bgColor' — not 'bg_color'.3B82F6
fgColorNoLabel text hex color. Field name is 'fgColor' — not 'text_color'.FFFFFF

TDQS

A3.5/5.0
Behavior2/5

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

Annotations only provide false hints for read-only/destructive behavior, and the description adds little behavioral context. It doesn't state how the generated image is returned (binary, URL, saved file), whether any server-side storage occurs, or what side effects, if any, exist. The schema mentions response MIME, but the tool description itself is thin on behavior.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that names the action, the resource, and the main customization options, followed by a useful [category: generate] tag. There is no filler or redundant explanation.

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

Completeness3/5

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

The parameter schema is rich and covers the input side well, but there is no output schema and the description does not explain what the tool returns or how the generated image is delivered. For a tool with six optional parameters and no required inputs, an agent would benefit from knowing the response shape or storage behavior.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description's phrases like 'any dimension' and 'custom background colour and label text' broadly map to parameters, but they don't add meaning beyond the schema's already detailed per-parameter descriptions, which include defaults, clamping behavior, and exact field names.

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

Purpose5/5

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

The description states a specific verb ('Generate') and a specific resource ('placeholder image'), and further clarifies the key options: any dimension, custom background colour, and label text. This clearly distinguishes it from sibling tools like generate_qr_code, generate_barcode, or photo_resize.

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

Usage Guidelines3/5

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

The description gives a clear context for use—creating placeholder images with custom dimensions, colors, and text—but it does not explicitly say when not to use it or mention alternative tools. Usage is implied by the resource type rather than explicitly routed.

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

generate_qr_codeAInspect

QR Code Generator — Generate a QR code from a URL, text, or vCard data as a PNG image. [category: generate]

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoImage size in pixels (max 2000)
levelNoError-correction levelM
contentYesThe URL, text, or vCard data to encode

TDQS

A3.7/5.0
Behavior3/5

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

Annotations are neutral (all flags false), so the description carries the behavioral burden. It adds the key trait that output is a PNG image and that content may be URL, text, or vCard. It does not disclose return mechanics (file path vs. binary vs. base64), but for a simple generate tool the disclosed traits are the most relevant. No contradiction 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.

Conciseness4/5

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

The substantive sentence is tight and front-loaded: verb, resource, input types, and output format all in one line. Minor redundancy exists — 'QR Code Generator' repeats the title, and '[category: generate]' restates the name prefix — but neither is costly.

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

Completeness4/5

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

For a low-complexity tool with 3 params, 100% schema coverage, and a clear one-sentence description, this is nearly complete. The remaining gaps are return-value mechanics (since there is no output schema) and explicit differentiation from generate_barcode, but neither is critical for a simple generator.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description's mention of 'URL, text, or vCard data' merely restates the content parameter's schema description rather than adding new meaning (e.g., vCard formatting requirements or error-level semantics).

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

Purpose5/5

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

The description has a specific verb ('Generate'), a distinct resource (QR code), permitted input types (URL, text, vCard), and the output format (PNG image). This distinguishes it clearly from siblings like generate_barcode, generate_certificate, and generate_favicon without needing to inspect their schemas.

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

Usage Guidelines3/5

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

Usage is implied: use this when you need a QR code from URL/text/vCard input. However, there is no explicit guidance about when not to use it or mention of the closest alternative (generate_barcode), which sits directly in the sibling list and could reasonably be confused with a QR generator.

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

media_add_watermarkAInspect

Video Watermark — Overlay a text watermark onto a video using FFmpeg, with position and opacity control. [category: media]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesVideo to watermark. Forces a full H.264 re-encode into MP4 (audio copied) — among the platform's slowest ops on long videos.
textNoWatermark text.John's Essentials
opacityNoFraction 0.0-1.0; invalid values fall back to 0.7.
positionNoNo hyphens — 'bottomright', not 'bottom-right'. Unknown values fall back to bottomright.bottomright

TDQS

A4.2/5.0
Behavior4/5

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

The file parameter description adds valuable behavioral context: the operation forces a full H.264 re-encode into MP4 with audio copied and is among the platform's slowest operations on long videos. Annotations already mark the tool as non-read-only and non-destructive, so the description extends that with performance and output-format expectations.

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

Conciseness5/5

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

One lead sentence carries the action, resource, engine, and controls, plus a category tag. No filler or repetition.

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

Completeness4/5

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

For a 4-parameter tool with no output schema, the definition covers the required input, optional text, and validation fallbacks; the file description also telegraphs the output container (MP4) and the performance cost. A return-value description would tighten it, but the behavior is sufficiently inferable.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents defaults, ranges, enum values, and fallback behavior for opacity and position. The main description contributes only 'position and opacity control,' which duplicates existing schema detail rather than adding new semantics.

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

Purpose5/5

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

The description opens with 'Video Watermark' and uses a concrete verb, 'Overlay a text watermark onto a video using FFmpeg,' specifying the resource, the operation, and key controls. This is clearly distinguishable from siblings like photo_watermark and pdf_watermark, so an agent can select it without needing to inspect the schema.

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

Usage Guidelines4/5

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

The 'Video Watermark' framing and 'overlay onto a video' give clear context for when this tool applies, and the category tag narrows it to media. It doesn't explicitly name alternatives or exclusion conditions, but the video-specific wording makes the primary use case unambiguous.

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

media_compress_videoAInspect

Compress Video — Reduce video file size using H.264 re-encoding with FFmpeg (quality presets high/medium/low). [category: media]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesVideo in any FFmpeg-readable container; always comes back as H.264/AAC MP4 (yuv420p, faststart) whatever went in.
qualityNoQuality preset mapping to H.264 CRF 18/23/28. Field name is 'quality' — there is no 'crf' parameter.medium

TDQS

A3.7/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the sparse annotations by naming FFmpeg, H.264 re-encoding, and quality presets. It does not explain output-file handling or non-destructiveness, but the schema's file parameter already documents the returned MP4 format.

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

Conciseness4/5

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

The description is a single short sentence with the key behavior front-loaded. The 'Compress Video —' prefix and '[category: media]' tag are slightly redundant with the tool name and sibling context, but they add minimal overhead.

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

Completeness4/5

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

For a two-parameter tool with full schema coverage, the description plus schema is sufficient to select and invoke the tool correctly. Although there is no output schema, the file parameter description already specifies the H.264/AAC MP4 result, so the description does not need to repeat it.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the schema already explains the output format for 'file' and the CRF mapping for 'quality'. The description only repeats the high/medium/low preset names without adding new parameter meaning.

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

Purpose4/5

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

The description states a specific verb-resource pair ('Compress Video') and explains the outcome (reduce file size) and method (H.264 re-encoding with FFmpeg). It is easy to tell apart from convert_video and media_trim_video, though it does not explicitly name an alternative.

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

Usage Guidelines3/5

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

The phrase 'Reduce video file size' implies the obvious use case, but there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives. In a large media/convert sibling set, an agent gets limited help choosing between this and convert_video or other compression tools.

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

media_extract_audioBInspect

Extract Audio — Extract the audio track from a video file as MP3, WAV, OGG, FLAC, or AAC. [category: media]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesVideo to pull the soundtrack from (any FFmpeg-readable container). Audio is always re-encoded to `format`, never stream-copied.
formatNoValues outside the enum are a 400, not a silent fallback. wav/flac come back lossless; mp3/ogg/aac are lossy re-encodes.mp3

TDQS

B3.4/5.0
Behavior2/5

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

The annotations (readOnlyHint:false, destructiveHint:false) provide little safety context, so the description should disclose side effects or output behavior, but it only restates the extraction action. The lossy/lossless encoding and 400-on-invalid-enum behaviors live in the param schema, not the tool description.

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

Conciseness4/5

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

The description is one clear sentence and front-loads the action before the format list. It loses a point for repeating the 'Extract Audio' title and appending a category tag that adds little for an agent.

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

Completeness3/5

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

For a two-parameter tool with completely documented schema, the bare description is workable, but with no output schema it never describes the return value or how the extracted audio is delivered. It also omits usage boundaries relative to sibling audio/media tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents `file` and `format` thoroughly. The description adds the list of formats, matching the enum, but no extra semantic meaning beyond that baseline.

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

Purpose5/5

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

The description opens with a specific verb-resource pair ('Extract the audio track from a video file') and enumerates output formats, making the operation unambiguous. This clearly differentiates it from siblings like media_extract_frames, media_trim_audio, and media_merge_audio.

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

Usage Guidelines3/5

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

The description implies usage by naming the extraction task, but it never states when to prefer this tool over alternatives or what preconditions apply. With nearby siblings like media_extract_frames and media_trim_audio, an explicit 'use this when you need the soundtrack, not frames' would be stronger.

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

media_extract_framesAInspect

Extract Frames — Extract frames from a video at a specified frame rate as JPEG images (returned as a ZIP). [category: media]

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNoFrames per second to extract
maxNoMaximum number of frames to extract.
fileYesVideo to sample. Frames are always JPEGs (frame_0001.jpg…) in a ZIP — no PNG option despite the tool blurb.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only provide generic flags (readOnlyHint=false, destructiveHint=false), so the description carries the behavioral burden. It clearly discloses that output is a ZIP of JPEG images and that extraction happens at a specified frame rate, giving the agent concrete expectations 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.

Conciseness4/5

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

The description is a single compact sentence with no unnecessary elaboration and front-loads the action and output format. The 'Extract Frames —' prefix is redundant with the tool name, which prevents a perfect score.

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

Completeness4/5

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

For a tool with no output schema, the description adequately covers the essential call details: input video, frame rate, and ZIP/JPEG output format. The schema fills in the remaining parameter defaults and constraints, so nothing critical is missing for a correct invocation.

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

Parameters3/5

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

The input schema already documents all three parameters with 100% coverage, including defaults, bounds, and descriptions. The tool description adds little parameter-level meaning beyond 'specified frame rate' and 'returned as a ZIP,' so it stays at the schema-driven baseline.

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

Purpose5/5

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

The description states a specific action and resource: extract frames from a video at a given frame rate, output as JPEGs in a ZIP. This clearly differentiates it from sibling tools like media_extract_audio and media_trim_video.

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

Usage Guidelines3/5

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

The intended usage is implied by the operation 'extract frames from a video,' but there is no explicit when-to-use guidance, exclusions, or comparison with alternatives. An agent can infer when to use it, but the description does not state this directly.

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

media_merge_audioAInspect

Merge Audio — Concatenate multiple audio files (at least 2) into one MP3 using FFmpeg. [category: media]

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesInput audio files (MP3, WAV, AAC, OGG) — at least 2 required.

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate the operation is not read-only and not destructive. The description adds that the output is MP3 and that FFmpeg is used, but it does not disclose side effects, mixed-format handling, or output delivery behavior. This is a modest addition beyond annotations, not comprehensive.

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

Conciseness5/5

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

The description is a single, efficient sentence with the essential constraint front-loaded and a useful category tag. There is no filler or redundant explanation.

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

Completeness4/5

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

For a one-parameter tool with annotations and a fully descriptive schema, the description provides enough information to invoke the tool correctly. A note about output/return behavior or ordering would make it fully complete, but nothing critical is missing.

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

Parameters3/5

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

The schema already documents the files parameter fully, including accepted formats and the at-least-2 constraint. The description only restates 'at least 2' and adds no new parameter-level semantics, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly identifies the operation (merge/concatenate), the resource (multiple audio files), the minimum count (at least 2), and the output format (one MP3 via FFmpeg). This distinguishes it well from sibling tools like media_trim_audio and media_extract_audio.

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

Usage Guidelines4/5

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

It gives a clear usage context: use this tool to concatenate two or more audio files into a single MP3. However, it does not explicitly name alternative tools or state when not to use it, so the guidance is sufficient but not exhaustive.

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

media_mute_videoAInspect

Mute Video — Remove the audio track from a video file. [category: media]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (MP4, MOV, AVI, MKV)

TDQS

A3.8/5.0
Behavior3/5

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

The description discloses the core behavioral effect: the audio track is removed, which goes beyond the annotations' readOnlyHint=false and destructiveHint=false. However, it does not clarify whether the input file is modified in place or a new muted video file is produced, which matters for an agent invoking the tool.

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

Conciseness5/5

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

The description is a single front-loaded sentence that immediately states the verb and object. The category tag is compact and useful, and there is no redundant or filler text.

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

Completeness4/5

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

For a simple one-parameter tool with no output schema, the description sufficiently communicates the input and the transformation. It could explicitly mention the return value, but the fact that the result is a muted video is strongly implied by the operation.

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

Parameters3/5

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

The only parameter, 'file', is fully described in the input schema with its accepted formats (MP4, MOV, AVI, MKV), so schema coverage is complete. The description adds little parameter-specific meaning beyond calling it a 'video file,' so the baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: 'Remove the audio track from a video file.' It clearly distinguishes the tool from related siblings like media_extract_audio or media_trim_video by describing a distinct outcome.

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

Usage Guidelines3/5

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

The description implies when to use the tool—when a muted/silent video is needed—but it gives no explicit alternatives, exclusions, or when-not-to-use guidance. It does not mention related media tools such as media_extract_audio or media_trim_video.

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

media_trim_audioAInspect

Trim Audio — Trim an audio file to a specified start and end time using FFmpeg. [category: media]

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd time e.g. '00:01:30'. Omit to trim to the end of the file; when set it must be after start.
fileYesAudio to trim. Output keeps this file's container/codec (stream copy); a filename with no extension is treated as .mp3.
startNoStart time e.g. '00:00:10'. Defaults to the beginning.0

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already signal a non-read-only, non-destructive safety profile, lowering the bar. The description adds only 'using FFmpeg' as mechanism context; it does not disclose whether the original file is overwritten, where the output is written, or whether the operation is lossless versus re-encoded. The stream-copy behavior is mentioned in the file parameter schema, not the description.

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

Conciseness4/5

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

One front-loaded, single-purpose sentence with no filler. Minor redundancy: the leading title 'Trim Audio' restates the verb+resource of the following sentence, and the '[category: media]' tag contributes little value to an agent.

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

Completeness4/5

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

For a simple 3-parameter tool with 100% schema coverage, safety annotations, and no nested objects, the description plus schema is nearly sufficient for correct invocation. The main gap is explicit output file naming/overwrite behavior, which is only hinted at through the schema's note that an extension-less filename is treated as .mp3.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description's 'start and end time' phrase loosely maps to the start/end parameters but adds no format guidance, default values, or constraints beyond what the schema already fully documents.

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

Purpose5/5

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

States a specific verb (Trim), resource (audio file), and the precise operation (specified start and end time), plus the mechanism (FFmpeg). This distinguishes it from near siblings like media_trim_video (video resource), media_extract_audio (extraction, not trimming), and media_merge_audio (merging, not trimming) without needing to open the schema.

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

Usage Guidelines3/5

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

The purpose statement implies when to use this tool — when an audio file needs to be cropped to a time range — but the description offers no explicit when/when-not guidance or named alternatives. Given the direct sibling media_trim_video (which also handles audio tracks within video), an explicit exclusion would meaningfully help an agent pick correctly.

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

media_trim_videoAInspect

Trim Video — Trim a video clip to a specified start and end time without re-encoding. [category: media]

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd time. Omit to trim to the end of the file; when set it must be after start.
fileYesVideo to trim. Stream copy — output keeps this container/codec, and the cut starts at the keyframe at or before `start`.
startNoStart time e.g. '00:00:10'. Defaults to the beginning.0

TDQS

A4/5.0
Behavior3/5

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

The 'without re-encoding' phrase adds a meaningful behavioral trait beyond the annotations, implying stream-copy behavior and keyframe-aligned cuts. However, the description does not state what the tool returns or how it handles the output file, and there is no contradiction with the provided annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that immediately states the tool's title and purpose. There is no filler or redundant information; the category tag is minimal and unobtrusive.

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

Completeness4/5

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

The input parameters are fully documented in the schema and the annotations cover the safety profile, so an agent can select and invoke the tool correctly. The only minor gap is the lack of an explicit description of the return value, but for a trim operation the result is reasonably inferable and not needed for invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with detailed descriptions for file, start, and end, so the description does not need to repeat parameter meaning. The description's mention of 'specified start and end time' aligns cleanly with the schema but adds no new semantic detail.

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

Purpose5/5

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

The description names a specific operation ('Trim'), a specific resource ('a video clip'), and the control parameters ('specified start and end time'). The qualifier 'without re-encoding' helps distinguish this from convert/compress video tools, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: when a video clip needs trimming to a start/end time without re-encoding. It does not explicitly name siblings like media_trim_audio or exclusion conditions, so it stops short of full alternative guidance.

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

octopus_deleteA
Destructive
Inspect

Delete a file. Default behaviour is a soft delete (the file goes to the trash and can be restored). Pass hard: true to permanently remove a file that's ALREADY in the trash — this also reclaims storage quota. [requires a signed-in account]

ParametersJSON Schema
NameRequiredDescriptionDefault
hardNoHard-delete (only allowed on files already in trash).
file_idYes

TDQS

A4.7/5.0
Behavior5/5

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

The description substantially expands on the annotations: it reveals the default soft-delete behavior, that files go to the trash and can be restored, that hard delete is only allowed on trashed files, and that it reclaims storage quota. This is valuable safety-relevant context beyond destructiveHint=true.

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

Conciseness5/5

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

The description is two tight sentences plus an auth note. It front-loads the core action, then explains the default, the conditional hard-delete path, and the side effect. Every sentence earns its place with no filler.

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

Completeness5/5

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

For a two-parameter destructive tool with no output schema, this description is complete: it names the required auth state, explains both parameter behaviors, gives the precondition for hard deletion, and discloses the storage-quota consequence. An agent has enough to invoke it correctly.

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

Parameters4/5

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

The hard parameter is explained in the description beyond its schema text, including the 'already in trash' precondition and storage-quota effect. The file_id parameter has no schema description, but its meaning is obvious from the tool's purpose and parameter name. The description compensates reasonably for the 50% schema coverage.

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

Purpose5/5

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

The description starts with a specific verb and resource: 'Delete a file.' It clearly distinguishes the tool from sibling tools like octopus_read and octopus_move by focusing on deletion. The soft-delete vs. hard-delete distinction further sharpens the purpose.

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

Usage Guidelines4/5

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

The description clearly explains the default behavior (soft delete) and when to use the hard delete option ('ALREADY in the trash'). It also notes that a signed-in account is required. It does not explicitly name alternative tools, but no sibling tool serves the same delete-file role, so the guidance is sufficient.

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

octopus_listA
Read-only
Inspect

List My Files — List the user's own saved files (their file storage), newest first, with an optional folder filter. Returns file names, types, folders, and IDs — never file contents. Use it to see what files the user has or to find which one they mean. [category: files]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo1-100; values outside this range silently fall back to 20.
folderNoOptional folder path, e.g. /Tax/2026. Omit for all recent files.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses meaningful behavior: results are sorted newest first, only metadata is returned, and file contents are never exposed. It also scopes the operation to the user's own file storage, adding important privacy and behavioral context.

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

Conciseness5/5

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

The description is compact and front-loaded, with each sentence earning its place: what it lists, what it returns/excludes, and when to use it. The category tag is unobtrusive and the wording avoids fluff.

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

Completeness5/5

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

For a simple two-parameter, read-only list tool, the description covers the essential context: scope, ordering, filtering, return fields, and the important exclusion of file contents. With no output schema, it sufficiently explains what the agent should expect back.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters well. The description adds a mention of the optional folder filter but does not meaningfully add to the parameter definitions, so the baseline score of 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource: 'List the user's own saved files (their file storage).' It adds useful qualifiers—newest first, optional folder filter, and 'never file contents'—which clearly distinguish it from file-reading or file-searching siblings like octopus_read and octopus_search.

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

Usage Guidelines4/5

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

It explicitly tells the agent when to use the tool: 'to see what files the user has or to find which one they mean.' However, it does not name sibling alternatives or state when not to use it, so it falls short of the full exclusionary guidance.

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

octopus_make_folderAInspect

Create Folder — Create a folder (and any missing parent folders) in the user's file storage. [category: files]

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFolder path to create, e.g. /Clients/Acme.

TDQS

A3.5/5.0
Behavior4/5

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

The description adds meaningful behavior beyond the annotations by stating that missing parent folders are also created, which clarifies the side-effect scope of the mutation. It does not specify behavior when the folder already exists, but for a simple creation tool the important non-destructive intent is disclosed.

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

Conciseness4/5

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

The description is compact, front-loaded, and wastes little space, with a useful category tag. There is minor redundancy because 'Create Folder' repeats the title before 'Create a folder,' but the overall structure is clean.

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

Completeness4/5

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

For a one-parameter create tool, the description covers what action is taken, where it happens, and the parent-folder behavior, while the schema completes the path format. It omits collision or existing-folder behavior, but this is a minor gap given the tool's simplicity.

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

Parameters3/5

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

The input schema already documents the single path parameter with an example (/Clients/Acme), so schema coverage is 100%. The description itself adds no parameter-level detail, so it earns the baseline rather than extra credit.

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

Purpose4/5

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

The description opens with 'Create a folder (and any missing parent folders) in the user's file storage,' giving a clear verb, resource, and scope. It is plainly a creation operation, but it never contrasts itself with the similarly named sibling octopus_mkdir, so it does not fully distinguish between related tools.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool rather than siblings such as octopus_mkdir, octopus_write, or octopus_move. The category tag and verb imply a file-storage creation context, but no explicit conditions, prerequisites, or exclusions are given.

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

octopus_mkdirA
Idempotent
Inspect

Create a folder. Any missing parent folders along the path are auto-created. Idempotent — creating an existing folder is a no-op. [requires a signed-in account]

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFolder path to create, e.g. /Tax/2026/.

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the idempotentHint and destructiveHint annotations, the description discloses several important behaviors: missing parent folders are auto-created, creating an existing folder is a no-op, and a signed-in account is required. This meaningfully exceeds the annotations and is consistent with them.

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

Conciseness5/5

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

Three short sentences each add distinct information: the operation, recursive parent creation, and idempotency/auth requirement. The text is front-loaded with the core purpose and contains no filler.

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

Completeness5/5

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

For a simple one-parameter, no-output-schema creation tool, the description covers the essential information an agent needs: what it does, its side effects, idempotency, and auth prerequisite. No critical gap remains for invoking it correctly.

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

Parameters3/5

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

The schema covers the single path parameter fully (100% coverage) and provides a concrete example. The description does not add extra parameter-level semantics, so the baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource ('Create a folder') and adds the recursive parent-creation behavior, making the core purpose clear. However, it does not differentiate itself from the near-duplicate sibling octopus_make_folder, so an agent cannot tell them apart from the description alone.

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

Usage Guidelines4/5

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

The description gives clear usage context: it is for creating folders, it auto-creates missing parents, it is safe to retry because existing folders are a no-op, and it requires a signed-in account. It does not explicitly mention alternatives or when not to use it, which prevents a perfect score.

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

octopus_moveA
Idempotent
Inspect

Move a file to a different folder in Octopus, optionally renaming it at the same time. Folders are auto-created if they don't exist. This is a metadata-only change — no bytes are copied. [requires a signed-in account]

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
to_pathYesDestination folder path.
new_nameNoOptional new filename.

TDQS

A4.1/5.0
Behavior5/5

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

The description adds meaningful behavior beyond the annotations: 'metadata-only change — no bytes are copied', 'Folders are auto-created if they don't exist', and '[requires a signed-in account]'. These details disclose side effects and preconditions not captured by readOnlyHint, destructiveHint, or idempotentHint, and 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.

Conciseness5/5

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

The description is three short sentences with no filler. The core purpose is front-loaded, followed by auto-creation behavior, then metadata-only and auth details. Every sentence earns its place.

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

Completeness4/5

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

For a simple 3-parameter move operation, the description covers the action, destination path creation, rename option, and auth requirement. It does not explain return values or error behavior, and it doesn't disambiguate from the similarly named octopus_move_file, but these are minor gaps for this tool's complexity.

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

Parameters4/5

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

The description enriches parameter understanding: 'optionally renaming it' maps to the new_name parameter, and 'Folders are auto-created' clarifies the to_path destination semantics. file_id still relies mostly on its name and the schema, but the 67% schema coverage plus these contextual clues is reasonably sufficient.

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

Purpose4/5

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

The description states a specific action—'Move a file to a different folder in Octopus'—and identifies the resource, plus the optional rename capability. However, it does not differentiate from the sibling tool 'octopus_move_file', which appears to describe the same operation, so it falls short of a 5.

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

Usage Guidelines3/5

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

The description gives clear operational context: moving, renaming, auto-creating folders, and metadata-only behavior, so when to use it is implied. But it does not explicitly state when not to use it or compare with alternatives like octopus_move_file or octopus_make_folder, leaving sibling selection guidance implicit.

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

octopus_move_fileAInspect

Move File to Folder — Move one of the user's files — an upload or a result from a previous step — into a folder of their file storage, optionally renaming it. Creates the folder if it doesn't exist. Use when the user says save / put / move / file this into a folder. [category: files]

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesThe file to move: an uploaded file id or a previous step's {{step_N.file_id}}.
to_pathYesDestination folder path, e.g. /Tax/2026. Created if missing.
new_nameNoOptional new file name, with extension.

TDQS

A4/5.0
Behavior4/5

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

The description discloses the key behavioral side effects beyond the readOnlyHint=false annotation: it moves the file, optionally renames it, and creates the destination folder if missing. It does not mention overwrite behavior or what happens when a file with the same name exists, but the main mutation semantics are clear.

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

Conciseness5/5

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

The description is compact: one sentence defines the action and effects, and a second provides concrete usage triggers. Every part earns its place, with no fluff or repetition of schema details.

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

Completeness4/5

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

For a simple three-parameter move tool with no output schema, the description covers the essential aspects: target path semantics, optional rename, side-effect of folder creation, and when to invoke it. It omits overwrite and return-value details, but those are not critical for a correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well documented. The description adds only minor reinforcement by mentioning 'optionally renaming' for new_name and 'Creates the folder if it doesn't exist' for to_path, but no meaningful new parameter-level information.

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

Purpose4/5

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

The description clearly states the verb and resource: 'Move one of the user's files ... into a folder of their file storage,' with optional renaming and folder creation. It is more specific than many siblings like octopus_make_folder or octopus_list, though it does not explicitly differentiate itself from octopus_move.

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

Usage Guidelines4/5

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

It gives explicit trigger phrases: 'Use when the user says save / put / move / file this into a folder.' However, it does not state when not to use it or mention alternatives such as octopus_move, so it lacks explicit exclusion guidance.

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

octopus_readA
Read-only
Inspect

Read the contents of a file the user has stored in Octopus. Small files (<=2 MiB) come back inline as base64 (or UTF-8 text for text/* MIMEs). Larger files return a short-lived presigned download URL the agent can fetch. [requires a signed-in account]

ParametersJSON Schema
NameRequiredDescriptionDefault
as_textNoIf true and MIME is text-like, return content as UTF-8 string instead of base64.
file_idYesFileID (UUID) from octopus.list / octopus.search.

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the readOnlyHint annotation by disclosing concrete behavior: small files return inline base64 or UTF-8 text, large files return a short-lived presigned download URL, and a signed-in account is required. This gives the agent actionable expectations about response format and prerequisites.

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

Conciseness5/5

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

The description is compact and front-loaded, with the core purpose in the first sentence and supporting behavioral details following immediately. Every sentence earns its place: size-threshold behavior, inline vs. URL response, and the auth requirement.

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

Completeness5/5

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

For a read-only tool with no output schema, the description fully explains what the agent will receive: inline content for small files, a presigned URL for large files, and the text/base64 distinction. The auth note and size threshold remove the main ambiguities an agent would face when invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema's existing parameter descriptions for file_id and as_text, though it does reinforce the text vs. base64 distinction. It correctly stays consistent with the schema without needing to compensate for missing parameter docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read the contents of a file the user has stored in Octopus.' It clearly distinguishes this from sibling tools like octopus_list or octopus_write by focusing on reading file content. The behavior is unambiguous even without a title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the use case clear: retrieve the contents of a stored Octopus file. While it does not explicitly name alternatives or exclusions, the context is obvious and the schema reference to octopus.list/octopus.search indicates how to obtain the file_id. This is clear context without needing formal exclusion statements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

octopus_search_metaA
Read-only
Inspect

Find My Files — Find the user's saved files by name, tag, or folder (metadata only — does NOT read file contents). Use it to resolve a reference like 'the invoice from this morning' or 'my Q1 report' to a real file. Returns matching names, types, folders, and IDs. [category: files]

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesText matched against file names and tags.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true already covering safety, the description earns credit by disclosing search scope ('user's saved files'), matching criteria (name, tag, folder), and a return contract ('Returns matching names, types, folders, and IDs'). It aligns with readOnlyHint and openWorldHint=false, though it does not mention no-match behavior or result limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each earning its place: purpose+scope, usage example, return contract, and a category tag. The most decision-relevant fact — 'metadata only — does NOT read file contents' — is front-loaded in the first sentence, and there is zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only tool with no output schema, the description covers search scope, input semantics, and return values, effectively substituting for the missing output schema. Minor gaps remain: no-match behavior and result limits are undisclosed, and the relationship to the sibling octopus_search is implicit rather than explicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by extending query targets beyond the schema's 'file names and tags' to include folders, and by signaling that natural-language references like 'my Q1 report' are valid query inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair — 'Find the user's saved files by name, tag, or folder' — and immediately differentiates from content-search siblings by adding 'metadata only — does NOT read file contents.' Concrete examples like 'the invoice from this morning' make the tool's purpose vivid and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it to resolve a reference like ... to a real file' provides explicit when-to-use guidance with realistic examples. The clause 'does NOT read file contents' implies a when-not boundary, but no alternative tool (e.g., octopus_search or octopus_read) is named to route content-requiring intents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

octopus_writeAInspect

Save a new file the agent has produced (a report, a summary, generated code, etc.) into Octopus. If path is omitted the file lands in /agent/{session}/ — the convention that keeps agent output separate from user uploads. Provide ONE of content_text (UTF-8) or content_base64 (binary). [requires a signed-in account]

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFilename including extension.
pathNoFolder to write into. Defaults to /agent/{session}/.
tagsNoOptional tags.
mime_typeNoOptional. Sniffed from extension if omitted.
content_textNoUTF-8 content (use for text/markdown/json). Provide exactly ONE of content_text or content_base64. Max 25 MiB.
content_base64NoBase64 content (use for binary). Decoded size max 25 MiB.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false); the description adds real behavioral context: the default path behavior, the session-scoped convention, the one-of content requirement, and the signed-in-account prerequisite. It doesn't address possible name conflicts or overwrite behavior, but this is a minor gap for a 'new file' creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler: the first establishes the core action, the second provides the default-path behavior, and the third covers the content exclusivity. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward single-file creation operation, the description covers the essential call-time decisions: path default, content encoding choice, and auth requirement. It does not describe the success response, but there is no output schema and the information needed to invoke the tool correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description adds value by explaining the path default's purpose ('keeps agent output separate from user uploads') and reinforcing the mutually exclusive content_text/content_base64 choice. This goes beyond simply restating parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete verb and resource: 'Save a new file the agent has produced ... into Octopus.' It also scopes the tool to agent-generated output, which sets it apart from the other octopus_* operations like read, delete, move, and list without needing to compare names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states the intended use case—persisting files the agent has generated—and gives a strong convention signal by defining the /agent/{session}/ default so agent output stays separate from user uploads. It does not explicitly enumerate when-not-to-use or alternatives, but there is no directly overlapping sibling write tool, so explicit exclusions are less critical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_compressAInspect

Compress PDF — Reduce PDF file size while preserving readability. Quality presets: light (300 DPI), balanced (150 DPI, default), mobile (96 DPI), maximum (72 DPI). Also supports metadata-only stripping and a target-size mode. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesPDF to compress
qualityNoCompression preset: light=300dpi, balanced=150dpi, mobile=96dpi, maximum=72dpi. Unknown values (including low/medium/high) silently fall back to balanced.balanced
targetSizeNoTarget output size. When set, compresses iteratively to fit and overrides 'quality'.
metadataOnlyNoStrip metadata only (Ghostscript pdfmark) — no image downsampling.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the operation is not read-only and is not destructive. The description adds useful behavioral context about presets, metadata-only stripping, and target-size mode, but it doesn't state whether the input is overwritten, how output is returned, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load the core purpose, then enumerate presets and special modes without redundancy. The category tag is compact and the whole description is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema (defaults, enum meanings, override behavior, min/max targetSize) and a single required parameter, the description contains the essential modes an agent needs to choose parameters. It omits output/return behavior, but no output schema exists and the omission is minor for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents each parameter, defaults, and the target-size override behavior. The description summarizes the presets and modes but adds little new semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb and resource ('Compress PDF') and explains the outcome ('Reduce PDF file size while preserving readability'). It lists named presets and special modes, making it easily distinguishable from sibling conversion and analysis tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly identifies when to use the tool (PDF compression tasks) and the available modes, but it never names alternatives or states when not to use it. For example, it doesn't clarify whether metadata-only stripping should be handled by pdf_remove_metadata instead of using the metadataOnly flag.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_cropAInspect

Crop PDF — Crop the visible area of all pages in a PDF by setting new margins. Margins are in PostScript points; EVERY omitted edge defaults to 36pt — send 0 to leave an edge uncropped. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoTop crop in points. 0 = no crop on this edge.
fileYesInput PDF (max 25MB)
leftNoLeft crop in points.
rightNoRight crop in points.
bottomNoBottom crop in points.
outputFilenameNoOptional custom output filename.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context beyond annotations: it crops all pages, uses PostScript points, defaults omitted edges to 36pt, and requires 0 to leave an edge uncropped. It does not contradict readOnlyHint=false or destructiveHint=false, though it does not detail the output/return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one front-loaded sentence that includes the critical defaults and units. The 'Crop PDF —' prefix is slightly redundant with the tool name, but overall there is minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with six parameters and no output schema, the description covers the essential call semantics: crop scope, units, defaults, and the 0 sentinel. It omits explicit output/return behavior, but the optional outputFilename parameter and schema cover the main remaining detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with defaults and per-edge descriptions. The description adds value by specifying the unit (PostScript points) and clarifying that 0 disables cropping on any edge, which the schema only explicitly states for the top parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Crop'), resource ('PDF'), scope ('all pages'), and method ('setting new margins'). This clearly identifies what the tool does and distinguishes it from sibling tools such as pdf_extract_pages or photo_crop.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage whenever a PDF's visible area needs to be reduced via margins, but it does not explicitly state when to choose this tool over alternatives or provide exclusion conditions. No sibling alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_delete_pagesCInspect

Delete Pages — Remove specific pages from a PDF. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesThe PDF to edit. Password-protected input is rejected 400 — run pdf_unlock first.
pagesYesPages to delete e.g. '1,3,5-7'

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only restates that pages are removed; it does not disclose whether the original file is modified or a new PDF is returned, nor any non-obvious side effects. Annotations declare readOnlyHint=false and destructiveHint=false, so the description adds little beyond what annotations already imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The substantive sentence is short and front-loaded, clearly naming the action and target. The repeated 'Delete Pages' prefix and category tag add minimal value, so it is not a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a file-mutating tool with no output schema and many PDF siblings, this description leaves out return behavior, whether the operation is reversible, and how to choose it over similar tools. It is adequate for invocation once selected but incomplete for distinguishing and predicting the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and parameter descriptions are informative, especially the 400 rejection for password-protected input. The main description adds no parameter-level meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the specific verb 'Remove' and resource 'pages from a PDF', so an agent immediately knows what the tool does. It doesn't explicitly contrast with pdf_extract_pages or pdf_split, but the semantics are clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to choose this over pdf_extract_pages, pdf_split, or pdf_reorder, and there are no exclusions or prerequisites. The only useful routing detail (password-protected inputs require pdf_unlock first) lives in the schema's file parameter, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_excel_to_pdfAInspect

Excel to PDF — Convert Excel spreadsheets (.xlsx / .xls / .csv / .ods) to PDF with fit-to-page, orientation control, paper size, sheet selection, repeat header rows, custom header/footer, PDF/A output, password protection, watermark, and per-sheet split mode. Hybrid pipeline: excelize preprocesses the xlsx (page layout, sheet visibility) then LibreOffice converts. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput spreadsheet (.xlsx, .xls, .csv, .ods)
pdfaNoArchival PDF/A output. 2b is the safe default.none
scaleNoPrint scaling percent. Overrides fitToPage when set.
footerNoPer-page footer template. Same tokens as header.
headerNoPer-page header template. Tokens: {page}, {pages}, {sheet}, {date}, {filename}.
sheetsNoSheet selection: 'all', comma-separated names (e.g. 'Sales,Ledger'), or comma-separated 0-based indexes (e.g. '0,2'). Non-selected sheets are hidden before conversion.
marginsNodefault|narrow|normal|wide (Excel's inch presets); default keeps the sheet's own margins. Only applies to .xlsx input; unknown → default.default
qualityNoOutput compression quality preset.
passwordNoOpen password for the output PDF (user password).
bookmarksNoAdd PDF bookmarks, one per sheet.
fitToPageNoFit each sheet to a page. 'width' prevents column cutoff; 'one-page' squeezes each sheet onto a single page.none
gridlinesNoShow gridlines. Empty leaves the sheet's own setting.
paperSizeNoa4 (default) | letter | legal | tabloid | a3. Only applies to .xlsx input (excelize preprocess); unknown values silently become a4.a4
splitModeNocombined = one multi-page PDF; per-sheet = ZIP with one PDF per sheet.combined
repeatRowsNoPrint titles — rows that repeat on every page. e.g. '1' or '1-3'.
orientationNoPage orientation. 'auto' picks landscape for sheets with ≥8 data columns.auto
showHeadersNoShow row/column headers (A/B/C + 1/2/3). Empty leaves the sheet's own setting.
permPasswordNoOwner password for permission restrictions. Optional.
watermarkTextNoOptional text watermark stamped on every page of the output.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the minimal annotations, the description adds valuable behavioral context: it reveals the hybrid pipeline ('excelize preprocesses the xlsx ... then LibreOffice converts'), which explains why some layout options are xlsx-only, and it mentions per-sheet split mode output as a ZIP. It does not contradict 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core conversion purpose and formats, followed by a dense but organized feature list and a one-sentence pipeline explanation. It is longer than minimal but each clause communicates a distinct capability; only the redundant 'Excel to PDF —' prefix is unnecessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 19-parameter converter with no output schema, the description covers formats, major features, output modes, and the internal pipeline, and the schema covers all parameters. It remains slightly incomplete on the default return format/response shape for the non-split case, but the overall definition is sufficient for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema description coverage is 100%, so the schema already documents every parameter. The description's feature list ('fit-to-page, orientation control, paper size, sheet selection...') summarizes capabilities but adds no parameter-level meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Convert Excel spreadsheets (.xlsx / .xls / .csv / .ods) to PDF', which clearly identifies the tool's function and supported formats. It does not explicitly distinguish this single-file converter from the sibling tools pdf_excel_to_pdf_batch and pdf_excel_to_pdf_inspect, so it is clear but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to choose this tool over alternatives. It does not mention the batch variant for multiple files or the inspect variant for pre-conversion checks, and there are no conditions or exclusions stated beyond the feature list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_excel_to_pdf_batchAInspect

Excel to PDF (Batch) — Apply the same Excel-to-PDF configuration to up to 20 spreadsheets. Returns a ZIP with per-file subfolders. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
pdfaNoArchival PDF/A output. 2b is the safe default.none
filesYesUp to 20 input spreadsheets
scaleNoPrint scaling percent. Overrides fitToPage when set.
footerNoPer-page footer template. Same tokens as header.
headerNoPer-page header template. Tokens: {page}, {pages}, {sheet}, {date}, {filename}.
sheetsNoSheet selection: 'all', comma-separated names (e.g. 'Sales,Ledger'), or comma-separated 0-based indexes (e.g. '0,2'). Non-selected sheets are hidden before conversion.
marginsNodefault|narrow|normal|wide (Excel's inch presets); default keeps the sheet's own margins. Only applies to .xlsx input; unknown → default.default
qualityNoOutput compression quality preset.
passwordNoOpen password for the output PDF (user password).
bookmarksNoAdd PDF bookmarks, one per sheet.
fitToPageNoFit each sheet to a page. 'width' prevents column cutoff; 'one-page' squeezes each sheet onto a single page.none
gridlinesNoShow gridlines. Empty leaves the sheet's own setting.
paperSizeNoa4 (default) | letter | legal | tabloid | a3. Only applies to .xlsx input (excelize preprocess); unknown values silently become a4.a4
splitModeNocombined = one multi-page PDF; per-sheet = ZIP with one PDF per sheet.combined
repeatRowsNoPrint titles — rows that repeat on every page. e.g. '1' or '1-3'.
orientationNoPage orientation. 'auto' picks landscape for sheets with ≥8 data columns.auto
showHeadersNoShow row/column headers (A/B/C + 1/2/3). Empty leaves the sheet's own setting.
permPasswordNoOwner password for permission restrictions. Optional.
watermarkTextNoOptional text watermark stamped on every page of the output.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds genuinely useful behavior beyond the annotations: the output wrapper format (ZIP), the per-file subfolder structure, the 20-file limit, and the uniform-configuration guarantee. The annotations already cover the safety profile (non-read-only, non-destructive), and the description does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is a single 18-word sentence that front-loads the batch scope, the limit, and the output format, then stops. The '[category: pdf]' tag is minor metadata, but every substantive element earns its place with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description wisely covers the return structure (ZIP with per-file subfolders), the scale limit, and the uniform-config behavior — the batch-specific facts an agent cannot infer. With the 19-parameter semantics fully handled by the schema and the detailed single-file semantics living in pdf_excel_to_pdf, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 19 parameters are already documented in the schema and the description need not compensate. The phrase 'same Excel-to-PDF configuration' hints the parameters mirror the single-file tool but adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Apply the same Excel-to-PDF configuration to up to 20 spreadsheets') and clearly defines the output ('Returns a ZIP with per-file subfolders'). The batch scope and 20-file limit distinguish it from the sibling pdf_excel_to_pdf without needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The batch context is clear ('up to 20 spreadsheets', 'same configuration'), so an agent can infer it is for multi-file jobs. However, the description never explicitly names the single-file alternative pdf_excel_to_pdf or states when NOT to use this tool, leaving the routing decision to inference from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_excel_to_pdf_inspectA
Read-only
Inspect

Excel to PDF (Inspect) — Non-destructive workbook scan: returns per-sheet row/column counts, merged cells, PrintArea presence, and the auto-orientation heuristic's decision per sheet. Used by the frontend to preview before converting. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (XLSX, XLS, CSV, ODS)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The 'Non-destructive' wording aligns with readOnlyHint=true, and the description adds value beyond the annotation by disclosing what the scan reveals, including the auto-orientation heuristic's decision per sheet. This gives the agent a concrete sense of the tool's output before invocation. It does not contradict 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence that front-loads the core action ('Non-destructive workbook scan') before enumerating return values and usage context. The [category: pdf] tag is slightly redundant given the name prefix, but every other clause earns its place with specific information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter inspect tool with no output schema, the description covers the input, the return contents, and the intended usage scenario. It does not explicitly point to the conversion sibling, but the returned data enumeration largely compensates for the missing output schema, leaving only minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'file' is already fully documented in the schema with format 'binary' and accepted extensions (XLSX, XLS, CSV, ODS), so schema coverage is 100%. The description adds no additional parameter-level detail beyond reinforcing that the input is a workbook, which matches the baseline of 3 for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: 'Non-destructive workbook scan' that returns per-sheet metadata. It enumerates exactly what is returned (row/column counts, merged cells, PrintArea presence, orientation decision), and the 'Inspect' naming plus sibling context (pdf_excel_to_pdf, pdf_excel_to_pdf_batch) makes the differentiation clear without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Used by the frontend to preview before converting' provides clear context for when this tool is the right choice — as a pre-conversion inspection step. However, it does not explicitly name alternatives ('use pdf_excel_to_pdf to actually convert') or state when-not-to-use, leaving some inference to the sibling naming convention.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_extract_pagesBInspect

Extract Pages — Extract a specific range of pages from a PDF into a new PDF. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput PDF (max 25MB). The uploaded filename must end in .pdf.
pagesYesPage range e.g. '2-5,8'
outputNameNoOptional custom output basename.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate that the operation is not marked read-only or destructive. The description adds 'into a new PDF,' which implies the input is left unmodified and a separate output is created. However, it does not disclose limitations, output behavior, or any side effects beyond that basic implication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with the core purpose stated in the first clause. The '[category: pdf]' suffix is minor extra metadata but not harmful. It is concise without being vague.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with three parameters, full schema coverage, and no output schema, the description plus schema is sufficient for an agent to understand what to provide. The main gap is the lack of sibling differentiation, but that is more of a usage-guidance concern.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented in the input schema. The description itself adds no parameter-level detail, which is acceptable given the high schema coverage. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Extract a specific range of pages from a PDF into a new PDF') with a clear resource and output. It does not explicitly differentiate from sibling tools like pdf_split or pdf_delete_pages, but the 'specific range of pages' wording is enough to convey the core operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as pdf_split, pdf_delete_pages, or pdf_reorder. There is no mention of exclusions, prerequisites, or conditions that would help an agent choose between related PDF manipulation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_file_infoB
Read-only
Inspect

PDF File Info — Detailed info about a PDF: size, pages, version, encryption. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnlyHint=true, so the safety profile is covered. The description adds useful context by naming the exact information categories returned, but it does not disclose output format, behavior on corrupted or encrypted PDFs, or any limitations beyond the annotation-provided read-only hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the tool's purpose before listing the returned data fields. The leading 'PDF File Info' is somewhat redundant with the tool name/title, but the rest of the sentence offers specific value and the category tag is useful for organization.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only informational tool with no output schema, the description adequately conveys what the tool returns. It does not cover edge cases or return formatting, but the operation is simple and the annotations already establish the read-only nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, file, is fully documented in the input schema as 'Input file (PDF)', giving 100% schema coverage. The description adds no additional parameter-specific meaning or constraints beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (a PDF) and the operation (retrieving detailed info), and enumerates the specific data points returned: size, pages, version, and encryption. It does not explicitly contrast with siblings like pdf_get_metadata or analyze_pdf_inspector, but the listed fields make the scope reasonably clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus sibling alternatives such as pdf_get_metadata, pdf_page_count, or analyze_file. The [category: pdf] tag offers a broad grouping but no selection criteria, exclusions, or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_flattenAInspect

Flatten PDF — Flatten PDF forms and annotations into static page content. Supports granular modes (annotations-only, forms-only, all), page ranges, signature-aware handling, link preservation, watermark stamping, image compression, PDF/A archival output, OCR for scanned inputs, and a ZIP bundle that exports form values + annotation metadata alongside the flattened file. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput PDF
modeNoWhich interactive elements to flatten. 'none' runs no flatten (useful for OCR/watermark/PDFA-only pipelines).all
pagesNoOptional page range (e.g. '1-3,5,7-9'). Only listed pages are flattened; others stay interactive.
ocrLangNoAllowlist: eng fra spa deu ita por nld pol chi_sim jpn kor ara rus hin; unknown → eng. Read only when ocrFirst=true (paid OCR tier).eng
ocrFirstNoRun ocrmypdf before flattening (for scanned PDFs). Requires Starter+ tier.
exportDataNoReturn a ZIP containing the flattened PDF plus form_values.json and annotations.json side files.
outputFormatNopdfa produces a PDF/A-2b archival output. Requires Starter+ tier.pdf
preserveLinksNoKeep clickable hyperlinks after flattening (uses qpdf --flatten-annotations=print).
signatureModeNopreserve = return original when signatures detected; ignore = flatten anyway (invalidates sigs); block = 409 error.preserve
watermarkFontNoExactly Helvetica, Times-Roman, or Courier (case-sensitive); anything else becomes Helvetica. Read only when watermarkText is set.Helvetica
watermarkTextNoText watermark to stamp before flattening. Leave empty to skip.
watermarkTileNoNOT available here — true returns a clear error (the flatten tile path is broken in the pinned engine; run pdf_watermark, which tiles, before flattening).
compressImagesNoDownsample images after flattening to shrink file size.
compressPresetNoscreen|ebook|printer|prepress (Ghostscript). Read only when compressImages=true; unknown → ebook. screen=72dpi, printer/prepress=300dpi.ebook
outputFilenameNoOptional custom filename for the flattened output (without path).
watermarkColorNoHex color, #rgb or #rrggbb.#808080
watermarkScaleNoAbsolute scale factor; default 1.0. Non-numeric resets to 1.0.
watermarkOpacityNo0 = invisible, 1 = solid; default 0.3. Non-numeric resets to 0.3. Read only when watermarkText is set.
watermarkFontSizeNoPoint size, integer; non-integer input silently resets to 48. Read only when watermarkText is set.
watermarkPositionNopdfcpu anchor: c tl tc tr ml mr bl bc br (ml/mr are folded to the engine's l/r); unknown → c (center). Read only when watermarkText is set.c
watermarkRotationNoDegrees, integer; default 45 = classic diagonal. Non-integer resets to 45. Read only when watermarkText is set.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only readOnlyHint=false and destructiveHint=false as annotations, the description carries the behavioral burden and does so substantively: it discloses static-page output, signature-aware handling, link preservation, watermark stamping, image compression, PDF/A output, OCR, and ZIP sidecar metadata. It adds meaningful behavioral context without contradicting 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core operation is front-loaded in one clear sentence, and the remaining features are compressed into a single dense list that earns its place for a 21-parameter tool. The redundant 'Flatten PDF —' prefix duplicates the title, but otherwise the prose is efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 21-parameter tool, the description gives a broad capability overview while the schema handles detailed parameter semantics, defaults, and constraints. The ZIP bundle mention hints at return shape even without an output schema, though an explicit pointer to pdf_flatten_batch for multi-file jobs would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and every parameter already has its own description, defaults, enums, conditional read-only notes, and tier requirements, so the baseline is 3. The main description adds a useful high-level grouping of features, but it does not add per-parameter syntax or conditional semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Flatten PDF forms and annotations into static page content') and enumerates a detailed feature set (modes, pages, signatures, links, watermarks, compression, PDF/A, OCR, ZIP export) that clearly separates it from most PDF tools. However, it does not explicitly distinguish this single-file tool from the sibling pdf_flatten_batch, so it falls just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The feature list conveys likely use cases, and the schema's watermarkTile parameter explicitly directs users to pdf_watermark for tiling, which is genuine alternative guidance. But the main description never states 'use this when...' or explains when to prefer pdf_flatten_batch or pdf_to_pdfa, leaving sibling selection mostly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_flatten_batchAInspect

Flatten PDFs (Batch) — Apply the same flatten configuration to up to 20 PDFs in one request. Returns a ZIP with each flattened file (and per-file error entries on failure). [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoWhich interactive elements to flatten. 'none' runs no flatten (useful for OCR/watermark/PDFA-only pipelines).all
filesYesUp to 20 input PDFs
pagesNoOptional page range (e.g. '1-3,5,7-9'). Only listed pages are flattened; others stay interactive.
ocrLangNoAllowlist: eng fra spa deu ita por nld pol chi_sim jpn kor ara rus hin; unknown → eng. Read only when ocrFirst=true (paid OCR tier).eng
ocrFirstNoRun ocrmypdf before flattening (for scanned PDFs). Requires Starter+ tier.
exportDataNoReturn a ZIP containing the flattened PDF plus form_values.json and annotations.json side files.
outputFormatNopdfa produces a PDF/A-2b archival output. Requires Starter+ tier.pdf
preserveLinksNoKeep clickable hyperlinks after flattening (uses qpdf --flatten-annotations=print).
signatureModeNopreserve = return original when signatures detected; ignore = flatten anyway (invalidates sigs); block = 409 error.preserve
watermarkFontNoExactly Helvetica, Times-Roman, or Courier (case-sensitive); anything else becomes Helvetica. Read only when watermarkText is set.Helvetica
watermarkTextNoText watermark to stamp before flattening. Leave empty to skip.
watermarkTileNoNOT available here — true returns a clear error (the flatten tile path is broken in the pinned engine; run pdf_watermark, which tiles, before flattening).
compressImagesNoDownsample images after flattening to shrink file size.
compressPresetNoscreen|ebook|printer|prepress (Ghostscript). Read only when compressImages=true; unknown → ebook. screen=72dpi, printer/prepress=300dpi.ebook
outputFilenameNoOptional custom filename for the flattened output (without path).
watermarkColorNoHex color, #rgb or #rrggbb.#808080
watermarkScaleNoAbsolute scale factor; default 1.0. Non-numeric resets to 1.0.
watermarkOpacityNo0 = invisible, 1 = solid; default 0.3. Non-numeric resets to 0.3. Read only when watermarkText is set.
watermarkFontSizeNoPoint size, integer; non-integer input silently resets to 48. Read only when watermarkText is set.
watermarkPositionNopdfcpu anchor: c tl tc tr ml mr bl bc br (ml/mr are folded to the engine's l/r); unknown → c (center). Read only when watermarkText is set.c
watermarkRotationNoDegrees, integer; default 45 = classic diagonal. Non-integer resets to 45. Read only when watermarkText is set.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description and schema surface behaviors beyond annotations: batch limits (up to 20), ZIP return with per-file errors, tier requirements, the broken watermarkTile path with clear remediation, signature handling modes, and conditional parameter semantics ('read only when...'). This is rich behavioral disclosure and contradicts no annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a tight one-liner which covers the essential purpose, scope, and output shape. It is front-loaded with the action and batch limit; however, the parameter-level descriptions inside the schema are necessarily verbose, so the overall tool definition is long due to schema, not due to redundant prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 21-parameter batch tool with no output schema, the description plus fully described input schema covers invocation, limits, error handling, tier restrictions, broken paths, and output format. The only minor gap is that it does not separately define the return structure beyond 'ZIP with each flattened file (and per-file error entries)', but that is sufficient for an agent to select and call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter. The description itself adds batch framing and output details but doesn't re-document params; it wisely lets the schema carry that weight. A 4 reflects the strong schema coverage plus the added top-level context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb and resource ('Flatten PDFs (Batch)') and immediately states the batch scope: apply the same configuration to up to 20 PDFs in one request. It also names the output contract (ZIP with flattened files and per-file error entries). The [category: pdf] tag and sibling list further disambiguate it from pdf_flatten and pdf_watermark.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains the batch use case vs alternatives, and the schema provides conditional signals (e.g., 'watermarkTile' says to use pdf_watermark instead, 'ocrFirst' requires Starter+, 'mode: none' is for OCR/watermark/PDFA-only pipelines). The sibling context includes pdf_flatten and pdf_watermark, and this description clearly distinguishes the batch path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_get_metadataA
Read-only
Inspect

Get PDF Metadata — Read the metadata fields of a PDF: Title, Author, Subject, Keywords, Producer, Creator. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is established. The description adds value by specifying which metadata fields are read, giving the agent a concrete view of what the operation exposes. It does not discuss edge cases like missing metadata fields, but that is a minor gap given the simple read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that states the verb, resource, and exact field list with no filler. The category tag is unobtrusive. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter, read-only tool with annotations covering safety, the description provides sufficient context: what it operates on, what fields are returned, and that it is a non-mutating read. The only notable gap is the lack of explicit differentiation from a few sibling analysis tools, but the field list largely covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single 'file' parameter is already described as 'Input file (PDF)' in the schema. The tool description adds no additional parameter detail beyond the PDF context, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('Read') and a specific resource ('metadata fields of a PDF'), and enumerates the exact fields returned: Title, Author, Subject, Keywords, Producer, Creator. This clearly distinguishes it as a reader from sibling tools like pdf_set_metadata and pdf_remove_metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The name and description imply the tool should be used when an agent needs to read a PDF's metadata, but there is no explicit statement of when to choose this over related tools like analyze_metadata or pdf_file_info. No alternatives or exclusions are mentioned, so guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_grayscaleAInspect

Grayscale PDF — Convert a PDF to grayscale, removing all colour information. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the behavioral detail that all colour information is removed, which is useful beyond the annotations. However, it does not state the return value, whether the original file is preserved, or any limitations; with no output schema, the description carries more burden than it fully meets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with the main action front-loaded. The 'Grayscale PDF —' prefix slightly repeats the tool name and category tag adds marginal value, but overall there is no wasted prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The input and core operation are clear, and the tool is simple with one parameter. However, because there is no output schema, the description should explicitly state what the tool returns; it only implies that a grayscale PDF is produced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents the only parameter ('file') with 100% coverage, so the baseline is 3. The description adds no additional parameter-level constraints or format details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Convert') and a clear resource ('a PDF') with an explicit effect ('to grayscale, removing all colour information'). It is immediately distinguishable from sibling PDF tools like pdf_compress or pdf_watermark.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose implies the tool should be used when a grayscale version of a PDF is needed, but there is no explicit guidance about when not to use it or which sibling tool to choose instead. No alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_html_to_pdfAInspect

HTML to PDF — Convert an HTML file (.html or .htm) to PDF using LibreOffice. File upload only — URLs are not fetched. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesHTML file (.html or .htm, max 25MB)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (non-read-only, non-destructive), and the description adds meaningful behavioral context: the conversion engine is LibreOffice, only file uploads are supported, and remote URLs are not fetched. This goes beyond the schema and 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with the core purpose first, followed by the most important constraint (file upload only) and a category tag. Every element earns its place with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description is complete: it states what is converted, the engine used, the input form, and the key exclusion. The schema covers the remaining file details, so an agent has enough information to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single file parameter, so the baseline is 3. The description adds value by clarifying that the parameter must be an uploaded file, not a URL, and reinforces the accepted extensions and size constraint already present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert') and resource ('HTML file .html or .htm to PDF'), and immediately distinguishes itself from URL-based conversion tools by declaring 'File upload only — URLs are not fetched.' This is precise and clearly separates it from siblings like convert_url_to_pdf.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage boundaries: only local HTML file uploads are accepted, and URLs are explicitly excluded. It does not name the sibling alternative, but the URL exclusion effectively tells an agent when not to use this tool and implies the alternative for URL input.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_images_to_pdfBInspect

Images to PDF — Combine multiple images (JPG, PNG, TIFF) into a single PDF document. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesInput files (JPG, PNG, TIFF)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=false, and the description does not contradict them. It adds the core behavior of combining images into one PDF, but it does not disclose details about output handling, ordering, or side effects beyond the basic conversion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with the key information front-loaded: combining images into a PDF. The category tag adds low-noise organizational value without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter conversion tool, the description is largely sufficient: it states input formats and the output result. It is missing only minor contextual details like image ordering or output naming, which are not critical given the low complexity and clear schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the files parameter. The description repeats the supported formats but adds no meaning beyond what the schema provides, such as ordering, limits, or layout behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Combine multiple images') and the resource ('into a single PDF document'), with supported formats listed. It is specific enough to be understood, though it does not explicitly differentiate itself from closely related siblings like convert_jpg_to_pdf.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance about when to use this tool versus alternatives such as convert_jpg_to_pdf or pdf_merge. The usage context is only implied by the description and tool name, with no exclusions or decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_interleaveAInspect

Interleave PDFs — Interleave pages from two PDFs alternately (useful for double-sided scans). [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesInput files (PDF (exactly 2 files))

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds the alternating-page behavior, but it does not disclose output details or side effects beyond the operation itself, which is acceptable given 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with only minor redundancy: 'Interleave PDFs — Interleave pages' repeats the title. The added detail about alternating pages and double-sided scans earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with clear annotations, the description is sufficient to select and invoke it correctly. It explains the core operation and a motivating use case, though it does not explicitly describe return values or contrast with pdf_merge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the files parameter already states 'PDF (exactly 2 files).' The description's mention of 'two PDFs' reinforces but does not add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise verb ('Interleave'), the specific resource ('pages from two PDFs'), and the exact behavior ('alternately'). It clearly distinguishes this tool from a plain pdf_merge, since alternating page order is an operationally different action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear use case: 'useful for double-sided scans.' However, it does not explicitly mention when not to use it or name an alternative such as pdf_merge for simple concatenation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_mergeAInspect

Merge PDFs — Combine multiple PDF files (at least 2) into a single document in the order provided. Supports per-file page selection, blank separator pages, bookmarks, and output metadata. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesInput PDFs — at least 2 required.
titleNoOptional output metadata Title.
authorNoOptional output metadata Author.
subjectNoOptional output metadata Subject.
pageRangesNoOptional per-file page selection aligned with the files order, e.g. '1-3,5'. The multipart field name is 'pageRanges[]' (with brackets).
addBookmarksNoAdd a bookmark at each document boundary.
insertBlanksNoInsert a blank page between documents.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals core behavior beyond the annotations: merging in the provided order and supporting optional page selection, blank separators, bookmarks, and metadata. Annotations already signal non-destructive behavior (destructiveHint false), so the description does not need to restate that, and it supplies useful context about what the merge does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action. The opening 'Merge PDFs' heading is slightly redundant with the tool name, but the rest of each sentence earns its place by summarizing scope and capabilities.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no output schema, the description, combined with a fully documented input schema, is largely complete: it states inputs, minimum count, ordering, and optional behaviors. It does not explicitly describe the output format or delivery, but 'into a single document' is a reasonable characterization and the sibling list makes the PDF domain clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning by stating that input order is preserved and by grouping the optional parameters into feature categories (page selection, separator pages, bookmarks, metadata). This helps an agent understand how the parameters work together even though individual schema descriptions are already present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Combine multiple PDF files (at least 2) into a single document in the order provided.' This clearly distinguishes pdf_merge from related siblings like pdf_split, pdf_reorder, and pdf_interleave by specifying ordered merging into one document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to choose pdf_merge over alternatives. Although it lists capabilities such as page selection, bookmarks, and blank separators, it does not mention exclusions or point to siblings like pdf_interleave for other merge patterns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_ocrAInspect

OCR PDF (Make Searchable) — Make a scanned PDF searchable and selectable by adding an invisible OCR text layer over the page images — the pages look identical, but the text becomes findable, copyable, and indexable. Uses ocrmypdf (Tesseract + Ghostscript); already-searchable pages are skipped, so it is safe to run on mixed documents. This CREATES a text layer — to EXTRACT text that already exists, use pdf_to_text instead. [category: pdf] [requires the starter plan]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesScanned PDF to make searchable.
langNoTesseract language code(s): three letters, joinable with '+' (e.g. 'eng', 'deu', 'eng+fra'). The pack must be installed on the server.eng

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that pages look identical after processing, that already-searchable pages are skipped, and that the operation uses ocrmypdf (Tesseract + Ghostscript). It could be slightly more explicit about whether a new file is returned or the input is modified, but the main behavioral traits are well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the tool's purpose and mechanism, then adds behavioral safety details and an alternative routing. Each clause contributes distinct value, and the metadata tags are compact rather than repetitive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no output schema, the description covers the operation, visual result, mixed-document safety, alternative tool, dependency, and plan requirement. Nothing essential for an agent to select and invoke this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains both parameters: file is a 'Scanned PDF to make searchable' and lang includes format, examples, and a server-pack caveat. The tool description adds little parameter-level meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: making a scanned PDF searchable by adding an invisible OCR text layer over page images. It also explains the observable effect—text becomes findable, copyable, and indexable—and explicitly positions it against pdf_to_text, so an agent can distinguish it from siblings without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear when-to-use guidance: scanned PDFs that need a searchable text layer. It also gives a when-not-to-use condition and names the correct alternative: 'to EXTRACT text that already exists, use pdf_to_text instead.' The note that already-searchable pages are skipped adds practical guidance for mixed documents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_page_countA
Read-only
Inspect

PDF Page Count — Get the total number of pages in a PDF. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and openWorldHint=false, and the description only restates that the tool reads a PDF. It adds no additional behavioral context such as output format, file-size limits, or error behavior beyond the schema and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the tool's purpose. The category tag is unobtrusive, and there is no filler or redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only tool, the description is complete: it identifies the input (a PDF file), the operation (counting pages), and the outcome (total number of pages). No output schema exists, but the return value is clearly implied by the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the 'file' parameter described as 'Input file (PDF)'. The tool description adds no further parameter detail, so it meets the baseline but does not exceed what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Get the total number of pages') and resource ('a PDF'), making the tool's function unambiguous. It is clearly distinct from sibling PDF tools because it names the exact output: a page count.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives like pdf_file_info or pdf_get_metadata, which might also provide page information. The description does not mention any exclusions or preferred use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_page_numbersCInspect

Add Page Numbers — Add page numbers to a PDF at a specified position (top/bottom, left/center/right). [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesPDF up to 25MB. Password-protected input is rejected 400 — run pdf_unlock first.
colorNoHex color #rrggbb.#333333
startNoStarting number. Field name is 'start' — not 'start_number'.
formatNoNumber template with {page} and {pages} tokens.Page {page}
fontSizeNoDoes NOT clamp — anything below 6 or above 72 silently RESETS to the default 10.
positionNoShort codes ONLY: bc=bottom-center, bl=bottom-left, br=bottom-right, tc=top-center, tl=top-left, tr=top-right. Long names like 'bottom-right' are NOT recognized and silently fall back to bottom-center.bc
skipLastNoSkip numbering the last page.
pageRangeNoOnly number these pages, e.g. '2-5,8'. Empty = all pages.
skipFirstNoSkip numbering the first page.
fontFamilyNoOutside the enum it silently becomes Helvetica. Latin-1 fonts — a 'format' template with CJK/Cyrillic/emoji is refused 400.Helvetica
romanNumeralsNoRender numbers as roman numerals.
outputFilenameNoOptional custom output filename.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only restates the operation and position; it does not disclose whether a new file is returned, whether the original is left intact, or how failures like password-protected input are handled. Annotations provide basic safety signals (not read-only, not destructive), but the description itself adds little behavioral context beyond the title.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with a lightweight category tag. It is efficient, but the phrase 'Add Page Numbers' repeats the title, preventing a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter tool with no output schema, the one-sentence description is thin and omits return behavior and side effects. However, the input schema is exceptionally rich—covering defaults, enums, constraints, and known gotchas—so the tool remains callable with the information provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameter details are already fully documented in the input schema. The tool description itself adds no parameter semantics, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action—'Add page numbers to a PDF'—and a key customization (top/bottom, left/center/right). This clearly distinguishes it from PDF conversion, analysis, and metadata tools, though it does not explicitly call out a sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus related tools like pdf_header_footer or pdf_watermark, and no exclusions or prerequisites are mentioned. The intended usage context must be inferred from the name, category tag, and parameter schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_pptx_to_pdfAInspect

PowerPoint to PDF — Convert a PowerPoint presentation (.pptx, .ppt) to PDF using LibreOffice. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PPTX, PPT)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is not read-only and not destructive, and the description adds that LibreOffice is the conversion engine. However, it does not disclose output payload details, file size limits, or whether the original file remains unchanged; the absence of an output schema raises the bar for such disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core function, followed by the input format and conversion engine. Every sentence contributes useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-input conversion tool, the description is largely sufficient: it states input, output, and conversion method. It lacks an explicit description of the return payload, which the missing output schema would otherwise need, so it falls just short of a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description only repeats what the schema already states: the input file can be PPTX or PPT. No additional parameter-level meaning is provided beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Convert'), names the resource ('PowerPoint presentation (.pptx, .ppt)'), and states the output format (PDF). This clearly differentiates it from sibling conversion tools such as convert_word_to_pdf or pdf_excel_to_pdf.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is clear: convert PowerPoint files to PDF. The description does not explicitly name alternatives or exclusions, but the tool name and description make the applicable scenario unambiguous in the context of many sibling conversion tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_protectBInspect

Password-Protect PDF — Add a password to a PDF to prevent unauthorised opening or printing. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput PDF (max 25MB)
passwordYesSets BOTH the user and owner password. May be omitted only when userPassword or ownerPassword is provided instead.
encryptionNoEncryption strength.aes256
outputNameNoOptional custom output filename.
permissionsNoComma-separated permissions to ALLOW: print, copy, edit, modify, annotate, all. Empty = pdfcpu defaults.
userPasswordNoOptional separate open (user) password.
ownerPasswordNoOptional separate permissions (owner) password.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly=false and destructive=false. The description adds the functional effect of preventing opening or printing, but it does not disclose whether the tool creates a new protected PDF, overwrites the input, or what happens to existing passwords/permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, with the core action stated immediately. The opening phrase repeats the tool name and '[category: pdf]' is minor metadata, but there is no meaningful padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with no output schema, the description is thin on outcome: it doesn't state what a successful call returns or whether output is a new file. The schema covers parameters well, so this is adequate but has clear gaps around result and side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains file size, password semantics, encryption, and permissions. The description adds no parameter-level meaning, so the schema carries the full burden as expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Add a password') and resource ('a PDF'), and clarifies the intended effect: preventing unauthorised opening or printing. It does not explicitly contrast with siblings like pdf_unlock, but the protect/unprotect distinction is reasonably inferable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when a PDF needs password protection) but provides no explicit when-not guidance or references to alternative tools such as pdf_unlock. No prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_remove_metadataAInspect

Remove PDF Metadata — Strip all metadata (author, title, keywords, etc.) from a PDF for privacy. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, and the description consistently says 'Remove'/'Strip', so there is no contradiction. The description adds that all metadata is removed, but it does not disclose the output format, whether a new file is returned, or whether the original file is modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. The opening phrase partly repeats the tool name, and '[category: pdf]' is unnecessary, but the overall length is still appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter tool, the description is mostly sufficient for selection and invocation. However, with no output schema, it does not mention what the tool returns or how the result is delivered, which leaves a notable gap for an agent consuming the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already fully documents the 'file' parameter as an input PDF binary. The description adds no additional parameter-level information, but with complete schema coverage the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb and resource ('Remove PDF Metadata') and specifies exactly what is stripped: author, title, keywords, etc. This distinguishes it from related tools like pdf_get_metadata and pdf_set_metadata without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for privacy' implies the intended use case, giving some context for when to call this tool. However, it does not explicitly state when not to use it or mention alternative tools such as pdf_set_metadata for selectively modifying metadata.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_remove_watermarkAInspect

Remove PDF Watermark — Attempt to remove an existing watermark layer from a PDF. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the key behavioral nuance 'Attempt', signaling that watermark removal is not guaranteed and explaining why destructiveHint is false. However, it does not disclose whether a new file is returned or the input is modified in place, nor what happens when no watermark layer is detected. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One efficient sentence with the purpose front-loaded; every word earns its place. The '[category: pdf]' tag is a minor but useful organizational signal with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with a single binary parameter, the core behavior is adequately stated, and the schema fully documents the input. However, with no output schema present, the description should ideally clarify what the tool returns (e.g., a processed PDF file) and how failure or absence of a watermark is handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the single `file` parameter is already documented as 'Input file (PDF)'. The description adds no parameter-level meaning beyond restating that a PDF is the input, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action—'Attempt to remove an existing watermark layer from a PDF'—with a clear verb and resource. It is inherently distinguishable from sibling add-watermark tools like pdf_watermark, media_add_watermark, and photo_watermark, and from similar removal tools like pdf_remove_metadata. The word 'Attempt' honestly scopes the guarantee of the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as pdf_unlock, pdf_repair, or pdf_flatten. There are no exclusions, prerequisites, or conditions stated; the only contextual signal is the weak '[category: pdf]' tag, which does not help an agent choose between PDF tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_reorderAInspect

Reorder PDF Pages — Reorder the pages of a PDF by supplying the desired page sequence. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput PDF (max 25MB)
orderYesComplete new page order — EVERY page exactly once, comma-separated, e.g. '3,1,2' for a 3-page PDF. Partial orders, duplicates, or missing pages are rejected with a 400.
passwordNoOptional password for encrypted PDFs.
outputNameNoOptional custom output basename.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate that the tool is not read-only and not destructive, which helps set expectations. The description itself adds little beyond the reordering mechanism and does not state what is returned or whether the original file is preserved. The order-validation behavior is documented in the schema, not the description, so the description provides only modest 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and the core message is front-loaded. It loses a point for mild redundancy: the title 'Reorder PDF Pages' is effectively repeated in the description, and the '[category: pdf]' tag is boilerplate noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The parameter schemas and annotations cover the input constraints and safety profile well. The main gap is the absence of an output schema and any description of the return value, so an agent does not know what the tool yields after reordering. For a transformation tool with no output schema, some mention of the result format is needed for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already explained in the input schema. The tool description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Reorder') and resource ('pages of a PDF'), and further clarifies the method ('by supplying the desired page sequence'). This distinguishes it from related siblings like pdf_reverse or pdf_extract_pages by implying an arbitrary custom order rather than a simple transformation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case: when a PDF's pages need to be placed in a custom sequence. However, it provides no explicit guidance about when to prefer this tool over alternatives such as pdf_reverse, pdf_extract_pages, or pdf_split, and it does not mention any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_repairAInspect

Repair PDF — Attempt to repair a corrupted or malformed PDF using Ghostscript. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The word 'Attempt' appropriately signals that repair may not always succeed, which adds behavioral nuance beyond the annotations. However, the description does not clarify whether the tool returns a repaired PDF, overwrites the input, or produces a new file, leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the purpose and method. Every component earns its place, and the category tag is unobtrusive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one clearly documented parameter and simple semantics, the description is mostly complete. The main gap is the lack of explicit output/return behavior, but the tool's purpose is straightforward enough that an agent can infer it returns the repaired PDF.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'file' parameter is already described as 'Input file (PDF)', so the description adds no additional parameter meaning. It correctly implies the file should be a PDF, but the schema already says this.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool repairs a corrupted or malformed PDF using Ghostscript, which is a specific verb and resource. It is distinct from all sibling tools, none of which offer PDF repair.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when a PDF is corrupted or malformed, which is useful context. However, it does not explicitly say when not to use it or name alternatives, such as pdf_unlock for password-protected files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_reverseAInspect

Reverse Page Order — Reverse the page order of a PDF (last page becomes first). [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful transformation detail ('last page becomes first') beyond the annotations, which only state that the operation is not read-only and not destructive. However, it does not disclose whether a new file is returned, whether the original is preserved, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, front-loads the action, includes a clarifying example of the behavior, and has no wasted words. The category tag is unobtrusive and useful for grouping.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with a straightforward operation, the description covers the essential semantics. An output schema is absent, so the description could theoretically clarify the return value, but for this simple PDF transformation the omission is not a major gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'file' parameter is already documented as 'Input file (PDF)'. The description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the operation ('Reverse Page Order') and the resource ('a PDF'), with an explicit behavioral detail ('last page becomes first'). However, it does not differentiate itself from the sibling tool pdf_reorder, which also deals with page ordering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is implied by the name and description, but no explicit guidance is given about when to choose pdf_reverse over alternatives like pdf_reorder or pdf_extract_pages. There are no exclusions or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_rotateAInspect

Rotate PDF — Rotate pages of a PDF by 90, 180, or 270 degrees — all pages or specific page numbers. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput PDF (max 25MB)
pagesNoPage ranges e.g. '1-3,5'. Empty = ALL pages — do NOT send 'all'.
rotationNoDegrees clockwise. The field name is 'rotation' — not 'angle'.
outputNameNoOptional custom output filename.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal that this is neither read-only nor destructive, but the description adds no further behavioral context: it does not state whether a new PDF is returned, whether the original file is modified, or what the output format is. The only added detail, page-range selection, is more about parameter scope than behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one efficient sentence, front-loaded with the tool name and core action, followed by essential options. It contains no filler or redundant restatement of the schema, and the category tag is unobtrusive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All four parameters are fully documented in the schema, and the description covers the core operation. However, with no output schema, the description does not explain what the tool returns (e.g., a rotated PDF file) or clarify that the input is not altered. This is adequate but not fully complete for an agent invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with file size, page-range format, rotation enum, and field-name warning all documented in the schema. The description's mention of 'all pages or specific page numbers' mirrors the schema's pages parameter without adding new semantic value. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Rotate pages of a PDF by 90, 180, or 270 degrees.' It clearly distinguishes rotation from sibling operations like cropping, deleting, extracting, or reordering. The 'all pages or specific page numbers' scope adds further precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context about what the tool does and its page-scope options, but it does not explicitly say when to use this tool over alternatives like pdf_reverse or pdf_reorder. No when-not-to-use guidance or sibling references are provided, leaving the agent to infer usage from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_rtf_to_pdfAInspect

RTF to PDF — Convert an RTF document to PDF using LibreOffice. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (RTF)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false, but the description adds little behavioral context beyond mentioning LibreOffice. It does not explain what happens to the input file, whether the conversion occurs asynchronously, or what side effects to expect, so the description carries minimal weight 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the key purpose, includes the output format, and even names the underlying tool. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity—one binary parameter and a direct format conversion—the description plus schema provides sufficient information for an agent to select and invoke it. The absence of an output schema is acceptable since the result (PDF) is explicit in the name and description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the only parameter ('file') with full coverage and a description 'Input file (RTF).' The tool description adds no new semantic detail beyond restating that the input is an RTF document, so it meets the baseline but does not improve on the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource: 'Convert an RTF document to PDF using LibreOffice.' This clearly distinguishes the tool from sibling converters like pdf_txt_to_pdf or pdf_html_to_pdf, which handle different input formats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when the input is an RTF document, but it does not explicitly mention alternative tools or conditions when not to use it. The usage context is inferable from the title and input schema, but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_set_metadataAInspect

Set PDF Metadata — Write or update metadata fields (Title, Author, Subject, Keywords) in a PDF. Fields are soft-verified after writing (mismatches are logged, not failed). At least ONE of title/author/subject/keywords must be provided or the request is rejected. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesThe PDF to edit. Password-protected input is rejected 400 — run pdf_unlock first.
titleNoAt least one of title/author/subject/keywords is required.
authorNoWritten verbatim to Author. Empty = left unchanged — this tool cannot blank a field (use pdf_remove_metadata to clear).
subjectNoWritten verbatim to Subject. Empty = left unchanged — clearing a field is not possible here (use pdf_remove_metadata).
keywordsNoFree-text Keywords string written verbatim (commas are convention, not parsed). Empty = left unchanged, never cleared.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate a write operation that is not destructive. The description adds meaningful behavior: fields are soft-verified after writing, mismatches are logged rather than failed, and the request is rejected if no metadata field is provided. This goes beyond the annotations and helps an agent predict failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose first, then verification behavior, then the required-field constraint. Every sentence contributes useful information, and the [category: pdf] tag is unobtrusive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The full definition—description plus schema—covers the core invocation needs well: required file, field semantics, inability to blank fields, and password-protected input handling. There is no output schema, so return-value details are not fully specified, but the soft-verification behavior gives enough expectation for normal use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description adds the at-least-one constraint and lists the writable fields, but it does not provide significant meaning beyond what the schema already states about empty values, clearing behavior, or password-protected input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific action and resource: writing or updating metadata fields (Title, Author, Subject, Keywords) in a PDF. It is distinguishable from siblings like pdf_get_metadata and pdf_remove_metadata, and the explicit field list removes ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool through its name and 'Write or update metadata' phrasing, but it does not explicitly name alternatives or exclusions in the main description. The schema does mention using pdf_remove_metadata for clearing fields, but the description itself relies on inference rather than direct routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_splitBInspect

Split PDF — Split a PDF by page range, into individual pages, by fixed chunk size, or into even/odd pages. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput PDF (max 25MB)
modeNoSplit mode. 'range' extracts the pages listed in 'pages'; 'all' splits every page into its own file; 'chunks' splits every chunkSize pages; 'even'/'odd' keep only even/odd pages.range
pagesNoPage range e.g. '1-3,5,7-9'. REQUIRED when mode=range (the default); ignored for other modes.
chunkSizeNoPages per chunk when mode=chunks.
outputNameNoOptional base name for the output file(s).

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral detail by listing the four splitting modes, and the annotations indicate a non-destructive operation. However, it does not disclose what the tool returns, how many output files are produced, or whether any files are overwritten. With no output schema, those details would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one tight sentence with a useful category tag. It is front-loaded and free of unnecessary detail, though the opening 'Split PDF' is slightly redundant with the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five parameters and branching modes, the description plus the detailed schema is mostly sufficient. The main gap is that the return/output behavior is not described, especially for modes like 'all' or 'chunks' that produce multiple files; the optional outputName parameter hints at this but the description does not confirm it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description reinforces mode names like 'chunks' and 'even/odd' but adds no meaning beyond what the schema's parameter descriptions already provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Split a PDF') and enumerates the supported splitting modes: page range, individual pages, chunk size, and even/odd pages. It is clear and directly tied to the tool's resource, though it does not explicitly distinguish itself from sibling tools like pdf_extract_pages or pdf_reorder.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool through its mode list, but it does not explicitly state when NOT to use it or name alternative sibling tools for related operations. The mode descriptions in the input schema partly compensate by explaining each mode's behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_thumbnailsBInspect

PDF Thumbnails — Generate thumbnail preview images for each page of a PDF. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesThe PDF to preview. A 1-page input returns a bare JPEG instead of a ZIP — plan for both shapes. Password-protected = 400.
qualityNoThumbnail size: small=72dpi, medium=150dpi, large=300dpi. There is no 'width' parameter.small

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose behavioral details such as output packaging, whether files are stored or returned directly, or failure modes. Key behavior like 'password-protected = 400' and '1-page input returns a bare JPEG' is present in the input schema but not in the description itself. The annotations are neutral false hints, so they do not meaningfully reduce the need for behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The meaningful description is one focused sentence with the action front-loaded. The category tag is lightweight and not distracting. There is no redundant elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool, the schema provides the necessary file input, quality options, and important output-shape warnings. The main gap is the absence of sibling-selection guidance, but that is already penalized under usage guidelines. Overall, an agent has enough information to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters, including the quality enum values, DPI mapping, default, and the note that there is no 'width' parameter. The description adds no parameter semantics, but the high schema coverage supports the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Generate thumbnail preview images for each page of a PDF.' This clearly states what the tool does and its scope, and it differentiates the tool from sibling PDF operations like pdf_to_images or pdf_page_count.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus related sibling tools such as pdf_to_images, pdf_extract_pages, or pdf_page_count. The description only states what the tool does and leaves tool selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_excelAInspect

PDF to Excel — Extract tables from PDFs into XLSX / CSV / TSV / JSON. Uses tabula-java (lattice + stream modes) with LibreOffice as fallback. Supports page ranges, table selection, sheet strategy (per-table/per-page/single), OCR for scanned PDFs (Starter+), JSON output (Starter+), and a non-destructive inspect endpoint that reports row/col counts plus ragged/sparse confidence flags. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput PDF
pagesNoOptional page range e.g. '1-5,10'. Empty = all pages.
engineNoTable detection engine. auto = tabula lattice → stream → libreoffice fallback.auto
formatNoxlsx/csv/tsv are file downloads; json returns structured data.xlsx
ocrLangNoAny Tesseract code, passed raw to ocrmypdf -l (default eng). Read only when ocrFirst=true; on OCR failure extraction continues un-OCR'd.eng
ocrFirstNoRun ocrmypdf before extraction (beta — scanned PDFs).
sheetModeNoXLSX sheet strategy. CSV/TSV/JSON ignore this.per-table
tableIndexesNoComma-separated 0-based indexes to keep (e.g. '0,2,3'). Empty = all tables.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only three sparse boolean hints in annotations, the description carries the behavioral burden and does substantial work: it discloses the engine implementation (tabula-java lattice/stream with LibreOffice fallback), plan gating on OCR and JSON output ('Starter+'), and a non-destructive inspect capability. The engine fallback chain gives agents an accurate mental model of how 'auto' behaves. No contradiction — readOnlyHint=false aligns with a file-creating extraction tool, and the description's 'non-destructive' claim matches destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Roughly 65 words for an 8-parameter tool; the core purpose is front-loaded in the first clause and the remainder is a tight, scannable capability list. The trailing '[category: pdf]' tag and the slightly ambiguous 'non-destructive inspect endpoint' phrase — which could mislead an agent into thinking this tool itself returns inspection results rather than the sibling pdf_to_excel_inspect — are minor blemishes. Every sentence otherwise earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderately complex conversion tool with 100% schema parameter coverage but no output schema, the description covers purpose, formats, engine behavior, and feature gates well. The main gaps are return-value semantics (what the agent receives on success: file download URL vs. structured JSON) and explicit failure behavior beyond the schema's OCR-continues-on-failure note. The inspect-endpoint ambiguity also leaves the relationship to pdf_to_excel_inspect slightly unclear, but little is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it explains the engine implementation (tabula-java) behind the engine enum, flags plan restrictions on ocrFirst and format=json via the 'Starter+' gate, and ties lattice/stream modes to the auto fallback order. It does not deep-document any single parameter, but the added context is actionable for selection and invocation decisions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource pair — 'Extract tables from PDFs into XLSX / CSV / TSV / JSON' — making the core purpose unambiguous at a glance. It also enumerates distinguishing capabilities (page ranges, sheet modes, OCR, JSON output) that separate this single-file converter from visible siblings like pdf_to_excel_batch and pdf_to_excel_inspect. An agent can identify what this tool does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through the capability list (engine selection, page ranges, sheet strategy), and the 'non-destructive inspect endpoint' sentence gestures at the inspect sibling, but the description never names alternatives or exclusion conditions. It does not say 'use pdf_to_excel_batch for multiple files' or 'use pdf_to_excel_inspect to validate extraction quality first.' This is implied usage, not explicit when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_excel_batchAInspect

PDF to Excel (Batch) — Apply the same PDF-to-Excel configuration to up to 20 PDFs. Returns a ZIP with per-file subfolders. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesUp to 20 input PDFs
pagesNoOptional page range e.g. '1-5,10'. Empty = all pages.
engineNoTable detection engine. auto = tabula lattice → stream → libreoffice fallback.auto
formatNoxlsx/csv/tsv are file downloads; json returns structured data.xlsx
ocrLangNoAny Tesseract code, passed raw to ocrmypdf -l (default eng). Read only when ocrFirst=true; on OCR failure extraction continues un-OCR'd.eng
ocrFirstNoRun ocrmypdf before extraction (beta — scanned PDFs).
sheetModeNoXLSX sheet strategy. CSV/TSV/JSON ignore this.per-table
tableIndexesNoComma-separated 0-based indexes to keep (e.g. '0,2,3'). Empty = all tables.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations carry little behavioral signal beyond readOnlyHint=false and destructiveHint=false, so the description shoulders much of the burden. It does add useful context by stating the output is a ZIP with per-file subfolders, but it overgeneralizes: the format parameter allows json, which the schema says returns structured data instead of a file download. The description also does not mention behavior on OCR failure or partial processing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the operation, the batch size, and the output format in two sentences. The opening 'PDF to Excel (Batch)' is somewhat redundant with the tool name and title, and the category tag adds little, so it is not a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a relatively complex tool with 8 parameters, 4 enums, and no output schema, so the description should clarify expected return shapes. It states a ZIP output unconditionally, but the schema's format=json option returns structured data, meaning the description is incomplete and potentially misleading for non-default formats. It also omits guidance on how the batch output maps to individual files beyond 'per-file subfolders.'

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter already has an explicit description, enum, or default in the input schema. The tool description adds no additional parameter-level meaning beyond referring to the 'same PDF-to-Excel configuration,' so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation—applying a PDF-to-Excel configuration to PDFs—along with a clear constraint (up to 20 PDFs) and a concrete output (ZIP with per-file subfolders). The 'Batch' label and 20-file limit distinguish it from sibling tools like pdf_to_excel and pdf_to_excel_inspect without needing to open their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for batch processing multiple PDFs and gives an explicit limit of 20 files, which is useful usage context. However, it does not explicitly state when to prefer the single-file pdf_to_excel tool or the configuration-inspection pdf_to_excel_inspect tool, so the agent must infer routing from sibling names rather than receiving direct guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_excel_inspectA
Read-only
Inspect

PDF to Excel Inspector — Non-destructive scan of a PDF's tables before converting: per-table row/column counts, confidence flags, warnings. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesThe PDF to scan (multipart field 'file', 25MB cap). Runs real extraction but returns JSON metadata only — nothing is converted.
pagesNoOptional page range
engineNoTable detection engine; invalid values fall back to auto.auto
ocrLangNoOCR language (Tesseract code).eng
ocrFirstNoRun OCR before table extraction (scanned PDFs).
tableIndexesNoComma-separated 0-based table indexes to keep. Empty = all tables.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description and file param explicitly disclose that the tool runs real extraction but returns only JSON metadata and converts nothing, adding behavioral nuance beyond the readOnlyHint annotation. It also communicates output characteristics (confidence flags, warnings) without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence front-loads the non-destructive nature and ends with a precise list of outputs. No fluff; every clause contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only inspection tool with a fully documented 6-parameter schema, the description covers the output essence (counts, confidence, warnings, JSON only) and the file constraints. Without an output schema, a bit more detail on the exact response shape could help, but it's sufficient for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline applies; the description doesn't add much per-parameter meaning beyond the schema. The file parameter's note about multipart field and 25MB cap is a small addition, but overall the schema carries the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear verb ('scan'), a specific resource (tables in a PDF), and a distinct scope ('before converting'), while listing concrete outputs (row/column counts, confidence flags, warnings). This differentiates it from conversion siblings like pdf_to_excel and pdf_to_excel_batch, and from generic pdf_file_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before converting' and 'Non-destructive scan' signal the intended use case as a pre-conversion inspection step. It does not explicitly name alternatives or exclusion conditions, but the context is clear enough for an agent to choose it over actual conversion tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_imagesAInspect

PDF to Images — Rasterize PDF pages to PNG / JPG / WEBP / TIFF (and AVIF, Starter+). Supports page ranges, quality/DPI controls, grayscale/mono color modes, transparent output, custom background color, max-dimension cap, area crop, text watermark, custom filename patterns, contact-sheet/filmstrip tile mode (Starter+), preset profiles (web/print/email/archive), and JSON / MinIO URL response modes. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNoOut-of-range values clamp silently to 30-600 — never an error. Non-numeric is ignored and stays 150.
cropNoArea crop in PDF points: 'x,y,w,h'
fileYesInput PDF
modeNosheet/filmstrip require Starter+pages
pagesNoPage range e.g. 1-3,5,7-9. Empty = all.
formatNoAliases jpeg/tif accepted; unknown values silently stay png. avif is Starter+ — Free tier gets a 402.png
presetNoOne-click preset bundle. Explicit fields override preset values.
maxWidthNoCap width (shrink-only, preserves aspect)
responseNourls mode requires Starter+ and authenticationzip
sheetGapNoPixel spacing between tiles in sheet/filmstrip modes. Out-of-range clamps silently to 0-200.
colorModeNomono+jpg has no 1-bit JPEG — it silently renders grayscale and sets X-Color-Mode-Adjusted. Unknown values fall back to rgb.rgb
maxHeightNoShrink-only height cap in pixels, aspect preserved. Omit for no cap — an explicit 0 clamps UP to 100 and shrinks every page.
avifQualityNoAVIF quality (Starter+)
jpegQualityNoConsulted only when format=jpg. Out-of-range clamps silently to 50-95 — this is not a 0-100 scale.
namePatternNoFilename template with {basename}/{page}/{page:03d}/{dpi}/{format}/{date} tokens
transparentNoPNG alpha channel when true
webpQualityNoConsulted only when format=webp. Out-of-range clamps silently to 50-95 — this is not a 0-100 scale.
sheetColumnsNomode=sheet only — filmstrip is always one row. Out-of-range clamps silently to 1-10.
watermarkFontNoOutside the enum it silently becomes Helvetica. Does nothing unless watermarkText is set.Helvetica
watermarkTextNoOptional text watermark stamped on each image
watermarkTileNoACCEPTED BUT UNUSED in this tool — no tiling on rasterized pages; the stamp renders once at watermarkPosition.
watermarkColorNoHex color, #rgb or #rrggbb.#808080
watermarkScaleNoACCEPTED BUT UNUSED in this tool — the raster stamp sizes by watermarkFontSize only; set that instead.
backgroundColorNoBackground for transparent PDFs rendered to non-alpha formats#FFFFFF
sheetBackgroundNoCanvas color behind tiles, sheet/filmstrip modes only. #rgb or #rrggbb; invalid hex silently keeps #FFFFFF.#FFFFFF
tiffCompressionNoTIFF compression (format=tiff only).lzw
watermarkOpacityNo0 invisible to 1 solid; out-of-range clamps. NOT a percent — 50 renders fully opaque. Needs watermarkText.
watermarkFontSizeNoPoints against the bitmap's 72dpi density — at dpi=300 text is ~4x smaller on the page than in a PDF. Needs watermarkText.
watermarkPositionNoUnknown codes silently become c (center). Does nothing unless watermarkText is set.c
watermarkRotationNoInteger degrees only — a decimal like '45.5' silently resets to 45. Needs watermarkText.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are sparse (non-read-only, non-destructive, open-world false), so the description carries most of the burden and delivers richly. It surfaces silent clamping behavior for several fields, tier-gated 402 behavior for AVIF/urls mode, accepted-but-unused watermark parameters, non-1-bit-JPEG fallback behavior, and special default interactions (e.g., dpi=150). This goes well beyond what annotations or schema types convey and materially prevents incorrect agent expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is effectively one long sentence with a very long serial list of features. It front-loads the core purpose well, but the tail becomes dense and list-like, making the description harder to parse quickly. Every clause carries information, yet the structure does little to group related concepts beyond the '[category: pdf]' tag. It is not bloated or redundant, but it is at the edge of what counts as concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 30-parameter tool with no output schema, the description covers the main capability areas, tier constraints, output formats, and response modes, and the schema covers every parameter with detailed behavioral notes. The description plus schema fully equips an agent to invoke this tool, including knowing which parameters are gated by tier. The only mild gap is the lack of a mention of the return format—whether the output is a download link, base64 payload, or something else—but the response-mode parameter (zip/json/urls) largely addresses that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful cross-parameter context not present in the schema: it tells the agent that preset profiles bundle multiple settings and that explicit fields override presets, and it highlights mode/sheet/filmstrip relationships. It also mentions response modes and filename patterns at a higher level, reinforcing usage intent. It does not restate every parameter, which is appropriate because the schema already documents them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair ('Rasterize PDF pages to PNG / JPG / WEBP / TIFF') and uses a title-like lead-in that names the tool's domain. It enumerates a large set of feature areas (page ranges, DPI, color modes, tile mode, presets, response modes), which makes the tool's exact scope clear and distinguishes it from nearby PDF-related siblings like pdf_thumbnails, pdf_extract_pages, or convert_* tools. The '[category: pdf]' tag reinforces grouping without substituting for meaning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the primary use case obvious (rasterize PDF pages into image formats) and includes enough feature detail to signal when it applies, but it does not explicitly say 'use X instead for Y' or state when not to use it. With roughly 130 siblings, the absence of named alternatives is a gap, but the detailed feature list still gives an agent solid contextual guidance. Tier-limited options (Starter+) are called out, which helps with routing when plan constraints matter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_images_batchAInspect

PDF to Images (Batch) — Apply the same rasterization configuration to up to 20 PDFs. Returns a ZIP with a subfolder per input file. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNoOut-of-range values clamp silently to 30-600 — never an error. Non-numeric is ignored and stays 150.
cropNoArea crop in PDF points: 'x,y,w,h'
modeNosheet/filmstrip require Starter+pages
filesYesUp to 20 input PDFs
pagesNoPage range e.g. 1-3,5,7-9. Empty = all.
formatNoAliases jpeg/tif accepted; unknown values silently stay png. avif is Starter+ — Free tier gets a 402.png
presetNoOne-click preset bundle. Explicit fields override preset values.
maxWidthNoCap width (shrink-only, preserves aspect)
sheetGapNoPixel spacing between tiles in sheet/filmstrip modes. Out-of-range clamps silently to 0-200.
colorModeNomono+jpg has no 1-bit JPEG — it silently renders grayscale and sets X-Color-Mode-Adjusted. Unknown values fall back to rgb.rgb
maxHeightNoShrink-only height cap in pixels, aspect preserved. Omit for no cap — an explicit 0 clamps UP to 100 and shrinks every page.
avifQualityNoAVIF quality (Starter+)
jpegQualityNoConsulted only when format=jpg. Out-of-range clamps silently to 50-95 — this is not a 0-100 scale.
namePatternNoFilename template with {basename}/{page}/{page:03d}/{dpi}/{format}/{date} tokens
transparentNoPNG alpha channel when true
webpQualityNoConsulted only when format=webp. Out-of-range clamps silently to 50-95 — this is not a 0-100 scale.
sheetColumnsNomode=sheet only — filmstrip is always one row. Out-of-range clamps silently to 1-10.
watermarkFontNoOutside the enum it silently becomes Helvetica. Does nothing unless watermarkText is set.Helvetica
watermarkTextNoOptional text watermark stamped on each image
watermarkTileNoACCEPTED BUT UNUSED in this tool — no tiling on rasterized pages; the stamp renders once at watermarkPosition.
watermarkColorNoHex color, #rgb or #rrggbb.#808080
watermarkScaleNoACCEPTED BUT UNUSED in this tool — the raster stamp sizes by watermarkFontSize only; set that instead.
backgroundColorNoBackground for transparent PDFs rendered to non-alpha formats#FFFFFF
sheetBackgroundNoCanvas color behind tiles, sheet/filmstrip modes only. #rgb or #rrggbb; invalid hex silently keeps #FFFFFF.#FFFFFF
tiffCompressionNoTIFF compression (format=tiff only).lzw
watermarkOpacityNo0 invisible to 1 solid; out-of-range clamps. NOT a percent — 50 renders fully opaque. Needs watermarkText.
watermarkFontSizeNoPoints against the bitmap's 72dpi density — at dpi=300 text is ~4x smaller on the page than in a PDF. Needs watermarkText.
watermarkPositionNoUnknown codes silently become c (center). Does nothing unless watermarkText is set.c
watermarkRotationNoInteger degrees only — a decimal like '45.5' silently resets to 45. Needs watermarkText.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds useful behavioral context by stating the output format (ZIP) and the per-input subfolder structure, which an agent would not otherwise know without calling the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence that front-loads the tool's purpose, states the batch limit, and names the output shape. The trailing '[category: pdf]' is a minor structured tag, not padding, and there is no wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 29 parameters and no output schema, the description provides the critical selection information (batch size limit, uniform configuration, ZIP output layout) while leaving parameter-level details to the thoroughly documented schema. It is slightly light on failure/tier behavior, but the schema already warns about tier-gated features, so this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and every parameter has its own detailed description with defaults, ranges, and edge cases. The tool description adds only the high-level 'same configuration' idea, which is useful but does not substantially extend what the schema already provides, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Apply'), a clear resource ('rasterization configuration to up to 20 PDFs'), and a concrete deliverable ('Returns a ZIP with a subfolder per input file'). This distinguishes it from the sibling pdf_to_images by emphasizing batch processing and ZIP packaging.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the batch context explicit with 'same rasterization configuration to up to 20 PDFs', which clearly implies this tool is for processing multiple PDFs at once. It does not explicitly name pdf_to_images as the single-file alternative, so it stops short of a full when-to-use/when-not-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_pdfaAInspect

PDF to PDF/A (Archival) — Convert a PDF to PDF/A-2b, the ISO archival profile required for long-term storage and by many legal, government and enterprise records systems. Embeds fonts and colour information so the document renders identically decades from now. Uses Ghostscript. If a PDF uses features that cannot be embedded (e.g. unlicensed fonts) the conversion fails honestly rather than returning a non-conformant file. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide basic safety hints, so the description adds value by explaining that the tool embeds fonts and color information and fails honestly rather than returning a non-conformant PDF/A. This is a useful behavioral guarantee beyond the structured fields and does not contradict 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences and front-loaded with the purpose and target standard. The Ghostscript note and honest-failure behavior add useful context, though the title-like first phrase is slightly redundant with the description opener.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter conversion tool with no output schema, the description covers purpose, target standard, use case, implementation, and failure behavior. It does not detail how the output file is returned, but that is a minor gap given the simplicity of the operation and the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100% for the single file parameter, so the schema already documents it adequately. The description does not add parameter-level details beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: "Convert a PDF to PDF/A-2b," the ISO archival profile. It clearly distinguishes this from sibling PDF tools by naming the exact target standard, the archival context, and the Ghostscript implementation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear when-to-use context: "required for long-term storage and by many legal, government and enterprise records systems." It does not explicitly name alternative tools or exclusions, stopping short of full routing guidance, but the use case is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_textAInspect

PDF to Text — COPY THE WORDS OUT of a PDF: get the wording, sentences and paragraphs as plain text you can paste into an email, a document or a spreadsheet. Extract the text that is already inside a PDF and return it as a plain .txt file. Reads the PDF's existing text layer using pdftotext with a Ghostscript txtwrite fallback — it does NOT run OCR. A scanned or photographed document has no text layer, so this tool refuses it with a 422 naming pdf_ocr rather than returning an empty file; run pdf_ocr first to add a searchable text layer, then extract. Mixed documents still succeed: pages that yielded no text are reported in the X-Conversion-Notes response header instead of being dropped silently. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important behavioral details beyond the annotations: it uses pdftotext with a Ghostscript txtwrite fallback, refuses scanned documents instead of returning an empty file, and reports empty pages via the X-Conversion-Notes response header. This gives the agent a clear mental model of success and failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and then provides implementation and error-handling details. There is minor redundancy between the first and second sentences, but each additional sentence contributes useful behavioral context, so it remains appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter conversion tool with no output schema, the description is complete: it explains what the tool returns, how it works, when it will fail, what error to expect, and what the caller should do in that failure case. Nothing needed for correct selection or invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single 'file' parameter as an input PDF with 100% coverage. The description adds meaningful context by explaining that the PDF must contain an existing text layer and that scanned files will be rejected, which is valuable semantic information beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb-resource pair: extract the text already present in a PDF and return it as a plain .txt file. It explicitly says it uses the existing text layer and does NOT run OCR, which distinguishes it from OCR-based tools like pdf_ocr and photo_to_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance and names an alternative: if the PDF is scanned or photographed and has no text layer, the tool returns a 422 with a reference to pdf_ocr, and the agent is told to run pdf_ocr first. It also covers mixed documents, saying pages with no text are reported rather than silently dropped.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_wordAInspect

PDF to Word — Convert a PDF to an editable Word document (.docx) using LibreOffice. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (PDF)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive, and the description adds that conversion is performed via LibreOffice and produces a .docx. It does not describe side effects, file handling, or limitations, but for a simple conversion tool the annotation coverage is sufficient to establish the basic safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that states purpose, output, and implementation detail, with the action front-loaded. The category tag is minimal and does not add clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter conversion tool, the description in combination with the schema is nearly complete. It specifies the input, output, and tool behavior. It does not describe the response format, but no output schema exists and the converted .docx result is strongly implied by the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage for the single 'file' parameter with its type and description ('Input file (PDF)'). The tool description adds no additional parameter-level details such as size limits or format constraints, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation (convert), the input resource (PDF), and the output format (editable Word document .docx). It also names the underlying implementation (LibreOffice), which distinguishes it from generic conversion tools and from sibling PDF extraction tools like pdf_to_text or pdf_to_images.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the use case: when you need an editable Word document from a PDF. It does not explicitly list alternatives or exclusions, but the purpose is unambiguous and the format detail (.docx) helps prevent confusion with pdf_to_text or pdf_to_images.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_txt_to_pdfAInspect

TXT to PDF — Convert a plain text file to a formatted PDF document. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (TXT)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=false, and the description does not contradict them. The description adds the core behavioral fact that it converts TXT to a formatted PDF, but it does not disclose details like output delivery, formatting assumptions, or possible limitations such as file size or encoding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with an optional category tag. It conveys the essential information in very few words and contains no filler or redundant elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity of the tool (one parameter, no nested objects, no output schema), the description provides enough information to understand the operation and its result. It could be slightly more complete by stating what the tool returns, but 'formatted PDF document' strongly implies the output format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single 'file' parameter is already documented as 'Input file (TXT)'. The description's phrase 'plain text file' adds minimal nuance beyond the schema but does not materially expand parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Convert') with a clear resource mapping: plain text file to a formatted PDF document. This clearly distinguishes it from sibling conversion tools like pdf_html_to_pdf or pdf_excel_to_pdf based on input type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to choose this tool over alternatives. With many sibling conversion tools, such as convert_document or the other pdf_*_to_pdf tools, the description could explicitly state that this is intended specifically for TXT input and not for other document formats.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_unlockAInspect

Unlock PDF — Remove password protection from a PDF (you must supply the current password). [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput PDF (max 25MB)
passwordYesThe PDF's current password.
outputNameNoOptional custom output filename.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive; the description adds that password protection is removed and that the current password is required. However, it does not disclose whether a new unlocked file is returned or whether the original file is modified, which is useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. The category tag is useful for grouping, and the critical prerequisite is integrated without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-purpose tool, the description plus fully documented schema covers the essential invocation requirements. The main missing piece is the output behavior, since there is no output schema, but the tool name and optional outputName parameter reasonably imply a resulting unlocked file.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description only reinforces that 'password' is the current password, which adds little beyond the schema. It provides no additional meaning for 'file' or 'outputName'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair, 'Unlock PDF' / 'Remove password protection from a PDF', making the tool's function immediately clear. It is also distinct from sibling tools like pdf_protect, which performs the opposite operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the key prerequisite: the current password must be supplied. It does not explicitly name alternative tools or when-not-to-use scenarios, but the password requirement strongly implies this is for unlocking protected files, not password recovery or adding protection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_watermarkAInspect

Add PDF Watermark — STAMP or watermark a PDF: overlay text or an image across every page (or selected pages) — the tool for stamping DRAFT, CONFIDENTIAL, PAID, APPROVED, COPY or any wording onto a document, marking pages, branding them, or adding a logo overlay. Watermark type is chosen by the 'mode' field. [category: pdf]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput PDF (filename must end in .pdf)
modeNoWatermark type. 'image' requires the imageFile field — presence of an image alone does NOT switch modes.text
textNoWatermark text (used when mode=text).CONFIDENTIAL
tileNoRepeat the watermark in a tiled pattern.
colorNoHex color #rgb or #rrggbb (mode=text).#808080
pagesNoComma-separated page numbers e.g. '1,3,5'. Empty = all pages.
scaleNoSize multiplier. With tile=true only values in (0,1] count (fraction of page) — anything else silently tiles at 0.3.
opacityNo0-1 float; non-numeric resets to 0.3, but out-of-range values reach the PDF engine and 500. NOT a percent.
fontSizeNoPoint size on the page (mode=text only). Non-integer input silently resets to 48.
positionNoLong names like 'bottom-right' are NOT recognized and silently fall back to c. ml/mr work (folded to engine anchors l/r).c
rotationNoWhole degrees only — a decimal string like '45.5' silently resets to 45.
imageFileNoWatermark image — PNG, JPG, or SVG. REQUIRED when mode=image; ignored otherwise.
fontFamilyNoOutside the enum it silently becomes Helvetica. All three are Latin-1 — non-Latin text is refused 400 (use mode=image).Helvetica
outputFilenameNoOptional custom output filename.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only convey read/destructive hints, so the description adds useful behavioral context: it overlays text or an image, can target every or selected pages, and mode selects the type. It does not disclose output/return behavior or whether the input file is modified, though the rich schema covers many quirks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and readable, but the first sentence partly repeats the tool name, and the list of example words (DRAFT, CONFIDENTIAL, PAID, APPROVED, COPY) is more verbose than necessary. The category tag is minor metadata and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter tool with no output schema, the description establishes selection and high-level behavior well, and the schema covers parameter specifics. It leaves gaps around what the tool returns and how output files are handled, so it is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema carries the parameter documentation burden. The description only restates that 'mode' picks the watermark type, which is already in the schema, adding little beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb/resource pair: stamp or watermark a PDF, and details the overlay of text or images across every page or selected pages. It clearly distinguishes this from sibling PDF operations like removing watermarks or adding headers/footers, even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear, concrete use cases ('stamping DRAFT, CONFIDENTIAL, PAID, APPROVED, COPY...', branding, logo overlay), so an agent knows when to choose it. It does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_bg_removerAInspect

Background Remover — Cut out the subject and remove the background from an existing photo, producing a transparent PNG (or a solid fill color). Edits a user-supplied image; does not generate new imagery. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, BMP (max 20MB)
modelNoSegmentation model; u2net_human_seg is tuned for people. Invalid values fall back to u2net.u2net
bg_colorNoOptional solid background fill color. Default: transparent.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false and destructiveHint=false, so the description does not need to repeat those. It adds useful behavioral context: the operation edits an existing image, produces a transparent PNG or solid-color result, and does not generate new imagery. It does not explicitly state that the original file is left untouched, but 'producing' and destructiveHint=false together imply that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences, front-loading the core operation and then adding the input boundary and non-generation clarification. The trailing '[category: photo]' is mildly redundant but does not materially hurt clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three parameters, full schema coverage, and annotations already indicating non-destructiveness, the description covers purpose, input source, output form, and the generation boundary. It does not mention original-file handling or alternative tool routing, but those are minor given the structured context available.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with descriptions for file formats and size, model enum/default/fallback, and bg_color default. The description adds little beyond the schema, only restating the transparent-or-fill output concept. Baseline 3 is appropriate because the structured schema carries the parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action: 'Cut out the subject and remove the background from an existing photo,' with an explicit output ('transparent PNG or a solid fill color'). It also distinguishes itself from generation tools by stating it 'does not generate new imagery,' so an agent can tell it apart from image-generation siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it: with a user-supplied existing photo that needs background removal, and it explicitly excludes generation use cases. However, it does not name sibling alternatives or provide when-not-to-use guidance, so usage guidance is inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_collageBInspect

Photo Collage — Arrange 2-16 images into a smart-cropped collage with aspect-ratio-aware layouts, named magazine templates, or legacy NxM grids. Output: JPG, PNG, WebP, AVIF. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
gapNoGap between cells in px, 0-100.
filesYes2-16 images — JPG, PNG, WebP, HEIC. The multipart field name is 'files[]' (with brackets).
layoutNoLegacy NxM grid, e.g. 2x2, 3x3 (layout_mode=grid_legacy).
qualityNoOutput quality; 0 or omitted = engine default.
bg_colorNo'white', 'black', 'transparent', or hex (#abc/#aabbcc). Unknown values silently become white; jpg output flattens transparency to white.white
templateNoNamed template (layout_mode=template), e.g. ig_post_2x2, ig_story_3_vertical, magazine_5_hero.
layout_modeNoOmit to auto-infer: 'template' present implies template mode, 'layout' implies grid_legacy, otherwise smart.smart
aspect_ratioNoOutput aspect ratio (smart mode).
output_widthNoLegacy alias for output_long_edge.
output_formatNo'jpeg' is accepted as an alias for jpg. png ignores 'quality' (fixed compression).jpg
output_long_edgeNoOutput long edge in px.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide a non-read-only, non-destructive safety profile; the description adds the useful behavioral facts that 2-16 inputs are arranged and that output can be JPG/PNG/WebP/AVIF. It does not disclose side effects beyond that, but none are strongly implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense introductory sentence followed by an output-format list and category tag. Every sentence contributes, and the 2-16 image scope and layout modes are front-loaded before the output detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the very thorough input schema with 100% parameter coverage and enums, the brief description plus output formats is mostly sufficient. The main gap is the missing explicit relationship to sibling tools, but the schema and description together cover count, formats, layouts, and parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description only summarizes layout modes and output formats at a high level and adds no new meaning that isn't in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and resource: arrange 2-16 images into a collage, and enumerates layout modes and output formats. It is clear but does not explicitly differentiate from sibling photo_collage_animated or photo_collage_mosaic, so it falls short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says what the tool can do (templates, grids, smart layout) but gives no guidance on when to choose this over photo_collage_animated or photo_collage_mosaic, and no exclusions or conditions. The alternative-selection burden is left entirely to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_collage_animatedAInspect

Animated Photo Collage — Animated/video collage (MP4/GIF/WebM) with Ken Burns motion. Business-only. [category: photo] [requires the business plan]

ParametersJSON Schema
NameRequiredDescriptionDefault
fpsNoFrames per second, 15-30.
gapNoGap between cells in px, 0-100.
filesYes2-16 images — JPG, PNG, WebP, HEIC. The multipart field name is 'files[]' (with brackets).
layoutNoLegacy NxM grid, e.g. 2x2 (layout_mode=grid_legacy).
motionNoken_burns = slow pan/zoom per cell. Invalid values silently become ken_burns, not an error.ken_burns
bg_colorNo'white', 'black', 'transparent', or hex. Unknown values become white; frames encode as jpg so transparency flattens to white.white
templateNoNamed template (layout_mode=template).
layout_modeNoOmit to auto-infer: 'template' present implies template mode, 'layout' implies grid_legacy, otherwise smart.smart
aspect_ratioNoDefaults to the template's own ratio in template mode, else 1:1. The long edge is height for portrait ratios.
duration_secNoVideo duration in seconds, 1-10.
output_widthNoLegacy alias for output_long_edge.
output_long_edgeNoOutput long edge in px, 400-1920.
output_video_formatNogif returns image/gif and balloons in size at high fps — prefer mp4/webm beyond a few seconds.mp4

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal, so the description adds useful behavioral context: supported output formats, Ken Burns motion, and the business-plan requirement. However, it does not describe the returned result envelope, storage/download behavior, or any side effects beyond producing a video, leaving some behavioral burden unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the output format and distinguishing behavior, with compact bracket tags for category and plan restriction. There is no filler or redundant explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 13 parameters and no output schema, the description covers the essential high-level context: animated/video output formats, Ken Burns motion, and business-plan eligibility. The 100% schema coverage handles parameter details well, though the description could be slightly more complete about the return value or explicit sibling selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 13 parameters already have their ranges, defaults, enums, and edge cases documented. The description contributes only the 'Ken Burns motion' concept, which maps to the motion parameter but adds no new parameter-level meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Animated Photo Collage' and clarifies it as an 'Animated/video collage (MP4/GIF/WebM) with Ken Burns motion.' This names the output medium and the distinctive motion behavior, clearly distinguishing it from static collage siblings like photo_collage and photo_collage_mosaic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit eligibility constraint ('Business-only', 'requires the business plan') but does not explicitly say when to prefer this over static collage tools or name alternatives. The usage context is implied by 'Animated/video collage' rather than stated as a when/when-not decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_collage_mosaicAInspect

Photo Mosaic — Render one hero photo as a mosaic of many small tile photos, color-matched per region. Business-only. Takes two separately-named uploads: 'target_image' (exactly 1) and 'tile_files[]' (20-1000). [category: photo] [requires the business plan]

ParametersJSON Schema
NameRequiredDescriptionDefault
bg_colorNowhite/black/transparent/none or #hex (3 or 6 digit); anything else silently = white. Visible only where a tile cell fails to render.white
tile_filesYes20-1000 tile photos. The multipart field name is 'tile_files[]' (with brackets).
target_imageYesThe hero photo the mosaic recreates — exactly one file.
tile_size_pxNoTile size in px, 30-200.
output_formatNo'jpeg' is accepted as an alias for jpg. Any other unlisted value silently falls back to jpg — no error.jpg
output_long_edgeNoOutput long edge in px, 1200-4000.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=false and destructiveHint=false, and the description does not contradict them. It adds meaningful context such as 'color-matched per region' and the business-plan restriction, but it does not describe output behavior, return format, or side effects beyond the core rendering activity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. Minor redundancy exists: 'Business-only' is stated and then repeated as '[requires the business plan]', and '[category: photo]' is informational but not essential. Overall, it is still efficient and well organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generation tool with six fully documented parameters, the description covers the essential input constraints and business-plan restriction. It does not describe the output/return behavior, and it does not explicitly compare against photo_collage siblings, but the schema and purpose statement together provide enough context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already fully documented in the input schema. The description mainly restates the upload field names and counts, which reinforces the multipart naming but does not add substantial meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Render') and a very specific resource/behavior: one hero photo becomes a mosaic of many small tile photos, color-matched per region. This clearly distinguishes it from sibling tools like photo_collage and photo_collage_animated, which are not described in these hero-plus-tiles terms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives actionable constraints: 'Business-only', 'requires the business plan', and exact upload requirements ('target_image' exactly 1, 'tile_files[]' 20-1000). However, it does not explicitly say when to prefer this tool over photo_collage or photo_collage_animated, nor when not to use it, so the choice among siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_color_adjusterBInspect

Color Adjuster — Adjust brightness, contrast, and saturation of an image. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, GIF, BMP, HEIC, TIFF. Max 25 MB. Output keeps the input format.
contrastNoPercent -100..100; 0 = no change. Not clamped server-side — keep within range.
brightnessNoPercent -100..100; 0 = no change (unlike saturation where 100 = no change). -100 = solid black, +100 = solid white.
saturationNo0-200 scale where 100 = unchanged, 0 = grayscale, 200 = double saturation. Do NOT send 0 for 'no change'.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false, establishing that this is a mutating but non-destructive operation. The description does not add behavioral details such as what output is returned, whether the original file is preserved, or what happens if no adjustment parameters are supplied, but it does not contradict 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted prose. The 'Color Adjuster —' prefix repeats the annotation title, and the '[category: photo]' tag is mild noise, but overall the description is appropriately compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema handles parameter documentation well, and the operation is simple enough that the description is minimally viable. However, there is no output schema and the description does not explicitly state that the tool returns the adjusted image or how the result is delivered, leaving a modest gap for an agent invoking it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already provides rich semantics for contrast, brightness, and saturation, including ranges, defaults, and special warnings. The tool description merely names the same properties without adding new meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and object: 'Adjust brightness, contrast, and saturation of an image.' This clearly distinguishes the tool from siblings like photo_editor, photo_crop, and photo_compress, which handle different or broader image operations. The purpose is immediately understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to choose this tool over alternatives such as photo_editor or photo_face_blur. It does not mention exclusions, prerequisites, or use-case boundaries, so an agent cannot tell when this tool is the intended choice versus a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_compressBInspect

Compress Image — Reduce image file size using lossy or lossless compression. Supports JPEG quality setting and target-size mode. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, GIF, BMP, HEIC/HEIF. HEIC/HEIF input always comes back as JPG unless output_format overrides.
qualityNo1-100 (400 outside). PNG→PNG maps it to lossless compression effort — pixels unchanged; other formats re-encode lossily.
strip_exifNoStrip EXIF metadata from the output. Pass false to preserve it.
output_formatNoOptional output format; omit to keep the input format. HEIC input converts to JPG unless overridden.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide limited safety context (readOnlyHint=false, destructiveHint=false). The description adds the useful behavioral detail that compression can be lossy or lossless. However, it does not disclose the irreversibility of lossy re-encoding, default EXIF stripping, or output format implications beyond what the schema already states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the tool's purpose. The '[category: photo]' suffix adds minor noise, and 'target-size mode' is vague, but overall the description is efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has four parameters, no output schema, and basic annotations, the description provides a reasonable starting point but is incomplete. It lacks usage differentiation from photo_compress_to_size, does not explain the mysterious 'target-size mode,' and does not mention supported input formats (though schema covers this).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all four parameters. The description adds minimal parameter-related meaning beyond mentioning 'JPEG quality setting' and 'target-size mode.' Notably, 'target-size mode' does not map to any schema parameter, which introduces ambiguity rather than clarifying semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Reduce image file size using lossy or lossless compression.' It clearly conveys the tool's core function. However, it does not explicitly distinguish itself from the closely related sibling photo_compress_to_size, even though it mentions 'target-size mode.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives. The sibling list includes photo_compress_to_size, which appears to overlap directly with the 'target-size mode' mentioned in the description, but the description does not clarify the difference or provide selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_compress_to_sizeBInspect

Compress Image to Size — Compress an image to hit a target file size in KB. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, GIF, BMP, HEIC, HEIF
strip_exifNoStrip EXIF metadata from the output.
output_formatNoOptional output format, e.g. jpg, png, webp. HEIC/HEIF inputs default to jpg output.
target_size_kbYesTarget size in KB as a positive integer, e.g. 200. Field name is 'target_size_kb' — not 'target_size'.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate readOnlyHint=false and destructiveHint=false, and the description adds little behavioral context beyond the goal of hitting a target size. It does not say whether the output replaces the input, whether the target size is approximate or exact, or what side effects occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the key idea, but the opening 'Compress Image to Size' largely duplicates the tool name/title. It is efficient overall, though the category tag and duplicated heading add limited informational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Required parameters and supported input formats are fully documented in the schema, and the one-line description communicates the core purpose. However, there is no output schema and no mention of return values, exactness guarantees, or output file behavior, leaving moderate gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters, including useful notes like the distinction between target_size_kb and target_size. The description only reiterates that the target is in KB and does not add new parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The core sentence names the operation ('compress'), the object ('image'), and the outcome ('hit a target file size in KB'), making the purpose clear and fairly specific. It does not explicitly distinguish itself from siblings like photo_compress or photo_resize, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'to hit a target file size in KB' implies the intended use case, so an agent can infer when this tool is appropriate. However, there is no explicit guidance about when to use this tool instead of photo_compress, photo_resize, or other compression tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_cropBInspect

Crop Image — Crop an image to a specified region (x, y, width, height) in pixels. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoLeft offset px on the DISPLAYED (EXIF-upright) image — the handler auto-orients before cropping.
yNoTop offset px on the DISPLAYED (EXIF-upright) image — the handler auto-orients before cropping.
fileYesJPG, PNG, WebP, HEIC, TIFF, BMP, or GIF. Output keeps the input format.
widthYesCrop width px. Clipped at the image edge if the region overruns.
heightYesCrop height px. A region overrunning the image edge is clipped, not an error.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnlyHint=false and destructiveHint=false, so no contradiction exists and the basic mutation profile is covered. The description adds no side-effect context (e.g., whether output replaces the input or is returned, or auto-orientation behavior), though the schema parameter descriptions do document clipping and EXIF-upright handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the operation and coordinate format. The '[category: photo]' tag is redundant noise, but the main sentence is efficient and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the schema compensates for many gaps (accepted formats, auto-orientation, clipping, numeric bounds), so invocation is feasible. However, the description omits usage context versus siblings and there is no output schema describing the returned artifact, leaving minor completeness gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already documented including coordinate ranges, defaults, and edge-clipping behavior. The description merely lists the same parameter names and adds no semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation ('Crop an image') and the exact coordinate model ('x, y, width, height) in pixels'), so an agent can tell this is a crop tool. It does not explicitly distinguish itself from sibling tools like photo_editor or photo_resize, but the verb+region formula is specific enough for purpose clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use photo_crop versus alternatives such as photo_resize, photo_editor, or pdf_crop. The description only defines what the tool does, leaving the selection decision entirely to inference from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_editorAInspect

Photo Editor — Apply a single named filter to an image: grayscale, sepia, blur, sharpen, negate, or vignette. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, GIF, BMP, HEIC, TIFF (max 25MB)
filterNoFilter to apply.grayscale

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey that the operation is not read-only and not destructive. The description adds the constraint of applying only a single filter at a time, but it does not disclose output format, whether the original file is preserved, or other runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one tight sentence followed by a category tag. It front-loads the core action and lists filters without wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple filter-application tool, the description plus schema provides enough to call it correctly. The only notable gap is the lack of explicit return/output behavior, but the absence of an output schema and the simple nature of the operation keep this from being a serious deficiency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters and the allowed enum values. The description mostly repeats the enum list and adds the 'single filter' semantic, which is useful but not a major addition beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Apply', names the resource (an image), and enumerates exactly which filters are supported. This makes the tool's purpose immediately clear and distinct from image-generating or analysis siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for single-filter image edits and lists the supported filters, but it does not explicitly state when to choose this tool over sibling tools like photo_color_adjuster or photo_crop, nor does it mention any alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_exif_viewerA
Read-only
Inspect

EXIF Viewer — Extract and display all EXIF metadata from a photo including camera, GPS, and settings. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (JPG, PNG, TIFF, HEIC)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint and openWorldHint annotations already cover the safety and scoping profile, and the description does not contradict them. It adds some useful behavioral context by listing what metadata categories are exposed, but it does not mention behavior when the photo has no EXIF data or what the output structure looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise, front-loaded sentence states the tool's purpose and key output categories, followed by a compact category tag. There is no filler, redundancy, or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only tool with full schema documentation, the description is nearly complete. However, because there is no output schema, a brief note about what happens when no EXIF metadata exists would make it fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the single 'file' parameter is already described as the input file with supported formats (JPG, PNG, TIFF, HEIC). The description adds no additional parameter-level meaning, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('extract and display') tied to a clear resource ('all EXIF metadata from a photo') and names concrete content categories (camera, GPS, settings). This unambiguously differentiates it from generic tools like analyze_metadata or analyze_file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the description: use when you need EXIF metadata from a photo. However, it does not explicitly state when not to use it or name alternatives such as analyze_metadata or describe_image, so the guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_face_blurAInspect

Face Blur — Automatically detect and blur faces in a photo for privacy protection. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, BMP (max 25MB)
blur_modeNogaussian softens, pixelate mosaics, solid draws an opaque black box — solid is the only mode that survives deblurring attacks.gaussian
block_sizeNoPixelate block size override. 0 = auto from blur_strength.
blur_radiusNoGaussian radius override. 0 = auto from blur_strength.
manual_facesNoOptional JSON array of manual face rectangles to blur.
blur_strengthNoPreset intensity 1-4. blur_radius/block_size overrides beat it when set; irrelevant for solid mode.
output_formatNoOptional output format; defaults to the input format.
selected_facesNoOptional JSON array of detected-face indexes to blur (default: all).

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnlyHint=false and destructiveHint=false, and the description adds that detection is automatic and the result is a blurred photo. It does not disclose whether the original file is preserved or whether a new output file is returned, leaving some operational ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavior is front-loaded in a single efficient sentence. The trailing '[category: photo]' tag is mildly redundant given the photo_ prefix and sibling context, but it does not meaningfully hurt discoverability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter, complete schema documentation, and basic annotations, the description plus schema is mostly sufficient. The main missing piece is explicit output/return behavior and clearer routing against photo_face_detect, but these are recoverable from the schema and tool name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter, including blur_mode, overrides, and face selection, already has a detailed explanation. The tool description adds no parameter-specific value, which is acceptable at the baseline given the rich schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action — 'automatically detect and blur faces in a photo' — and attaches a clear privacy rationale. This distinguishes it from sibling tools like photo_face_detect (detection only) and generic photo_editor (manual edits).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The privacy-protection framing gives an implied use case: blur faces before sharing a photo. However, the description never names alternatives or explicitly says when not to use this tool, so some routing responsibility falls on the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_face_detectA
Read-only
Inspect

Face Detect — Detect faces in an image and return bounding boxes. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput file (JPG, PNG)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the useful behavioral detail that the tool returns bounding boxes, but does not disclose additional behavior such as output format, coordinate system, limits on number of faces, or behavior when no faces are found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one clear, compact sentence that states the action, the input, and the output. It is front-loaded with the core purpose and has no filler or redundant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-input read-only tool with full schema coverage and no output schema, the description covers the essential information: what the tool does and what it returns. It could be slightly more complete by describing the format of the bounding boxes, but the current level is adequate for selecting and correctly invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the only parameter 'file' is already fully documented in the schema as an input file (JPG, PNG). The description adds nothing meaningful beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Detect faces in an image and return bounding boxes.' It clearly differentiates from sibling tools like photo_face_blur (which would blur faces) and photo_bg_remover (which removes backgrounds), making the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: this tool should be used when an agent needs to detect faces and obtain bounding boxes. However, it provides no explicit guidance about when to prefer this over related tools like photo_face_blur, nor does it mention any conditions or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_flip_rotateAInspect

Flip / Rotate Image — Flip an image horizontally or vertically, rotate it by 90/180/270, or rotate by a custom angle. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput image (max 25MB)
actionNoRotate values have NO hyphen: 'rotate90', not 'rotate-90'. 'custom' rotates by the 'degrees' field.rotate90
degreesNoRotation degrees, -360 to 360 — only used when action=custom.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as non-read-only and non-destructive, so the description only needs to add operation-level nuance. It does enumerate all supported actions and the custom-angle option, but it does not disclose the output form, whether the original file is modified in place, or format constraints beyond the binary input.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one compact sentence with the main operation front-loaded and no real padding. The opening phrase repeats the title, which is minor redundancy, but the rest is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter transform tool, the description plus a fully documented schema provides enough to select and invoke it correctly: file, action, and degrees for custom rotation. It does not describe the return format, but no output schema is declared and the operation itself is fairly self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's mention of 'horizontally or vertically' and 'custom angle' paraphrases the action enum without adding new meaning; the critical no-hyphen rule and degrees bounds are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (image) and the exact transformations: horizontal/vertical flip, 90/180/270 rotation, and custom-angle rotation. This is specific enough to distinguish it from sibling tools like pdf_rotate, photo_resize, and photo_crop, and the [category: photo] tag reinforces the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are mentioned even though many photo siblings exist. The intended use is only implied by the operation list, so an agent gets no routing help for choosing this tool over photo_editor or pdf_rotate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_format_converterAInspect

Image Format Converter — Convert an image between formats: JPG, PNG, WebP, TIFF, BMP, GIF, AVIF. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesInput format is unrestricted — anything ImageMagick reads, incl. HEIC. Max 25 MB.
formatNo'jpeg' also accepted (saved as .jpg). EXIF rotation is baked into the pixels — most target formats can't carry the tag.png

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that the operation is not read-only and not destructive, and the description does not contradict them. However, the description adds no further behavioral detail such as whether a new file is produced, how output is returned, or side effects; the EXIF-rotation note appears only in the schema, not the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence with a category tag, and the core verb and resource are front-loaded. The opening phrase 'Image Format Converter' is slightly redundant with the tool name, but the overall size is appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with complete schema documentation, the description is sufficient to select and invoke it correctly. The lack of output specification is mitigated by the self-explanatory 'convert between formats' behavior and the absence of complex state or nested inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters, including accepted aliases and input restrictions. The format list in the description largely duplicates the enum without adding new meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('convert') on a specific resource ('image') and enumerates seven supported formats, which clearly distinguishes it from generic converters like convert_file and from photo editing tools. The purpose is immediately obvious and not a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as convert_file or photo_editor. It relies on the agent to infer usage from the format list, and there are no exclusions or routing rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_image_diffBInspect

Image Diff — Compare two images and highlight the differences visually. Takes two separately-named uploads: 'image1' and 'image2'. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fuzzNoPer-pixel tolerance percent, 0-20.
image1YesFirst image — JPG, PNG, WebP, BMP (max 25MB)
image2YesSecond image — JPG, PNG, WebP, BMP (max 25MB)
normalizeNoNormalize sizes before comparing.
output_formatNoFormat of the returned diff image. AE/SSIM/PSNR/RMSE scores ride X-JE-Metric-* response headers, not the body.png
lowlight_colorNoHex color for unchanged pixels.#222222
highlight_colorNoHex color for changed pixels.#ff0000

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false), and the description adds the visual-diff behavior. However, it does not disclose what happens with mismatched sizes, whether uploads are consumed, or what the response contains beyond a direct reading of the parameter descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core function, followed by a sentence clarifying the required upload names. The only minor redundancy is the 'Image Diff —' prefix mirroring the annotation title, but overall there is no wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description plus the rich 100%-covered schema give enough to invoke the tool correctly, and the output_format parameter description explains the returned image and metric headers. Still, the description itself omits practical context such as how normalize affects comparison and what happens if images differ in size.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter. The description only reiterates the names 'image1' and 'image2' without adding new semantic depth, matching the baseline for fully self-documenting schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Compare two images and highlight the differences visually.' This is sufficient to distinguish it from similarity-analysis or overlay tools in the sibling list, though it does not explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to choose this tool over alternatives such as analyze_image_similarity or photo_image_overlay. There are no scenarios, prerequisites, or exclusions stated, leaving the agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_image_overlayBInspect

Image Overlay — Composite one image on top of another at a specified position. Takes two separately-named uploads: 'background' and 'overlay'. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNoOverlay width as a percent of background width, 1-200.
opacityNoOverlay opacity 0-100.
overlayYesImage composited on top — JPG, PNG, WebP, BMP (max 20MB)
positionNoAnchor cell the overlay snaps to; x_offset/y_offset shift from THIS anchor, not from the top-left corner.mc
x_offsetNoPx shift with gravity semantics: positive pushes inward from the anchored edge (leftward from right-side anchors).
y_offsetNoPx shift with gravity semantics: positive pushes inward from the anchored edge (upward from bottom anchors).
backgroundYesBase image — JPG, PNG, WebP, BMP (max 30MB)
output_formatNoOptional output format; defaults to the background's format.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not destructive, and the description adds some context by naming the two distinct uploads and the positioning behavior. It does not disclose output behavior such as the returned composite image's format or whether the originals are preserved, but the annotations reduce the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action, and the second sentence clarifies the upload contract. The opening 'Image Overlay —' is redundant with the tool name/title, but the overall text has no excess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema richly documents parameters and annotations cover the safety profile, but the description alone does not mention the returned output or how it relates to the background format. For an 8-parameter binary-image compositing tool, this is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema itself documents all eight parameters with meaningful detail. The description only repeats the background/overlay names and adds no new parameter semantics beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair ('Composite one image on top of another') and clarifies the two required uploads ('background' and 'overlay'). It clearly states what the tool does, though it does not explicitly differentiate itself from similar sibling tools like photo_watermark or media_add_watermark.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is only implied: an agent can infer this tool is for placing one image over another at a chosen position. There is no explicit guidance about when to choose this over alternatives, nor any 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.

photo_image_splitterAInspect

Image Splitter — Split an image into a grid of equal tiles (e.g. 2x2, 3x3). [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
colsNoColumns, 1-8. The rightmost column absorbs remainder px, so tile widths can differ slightly.
fileYesImage to split — JPG, PNG, WebP, or BMP (max 30 MB). Output is ALWAYS a ZIP of tiles, even for tiny grids.
rowsNoRows, 1-8. The bottom row absorbs remainder px. rows x cols tiles come back in one ZIP.
output_formatNoOptional tile format; defaults to the input format.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the grid-tile behavior but little else beyond the annotations. It does not disclose key behavioral details such as output always being a ZIP, remainder-pixel handling, or whether the original file is preserved; those details live in the schema parameter descriptions instead.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that communicates the core behavior and gives useful examples. The category tag is minimal and does not add noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description names the tool's purpose and the schema fills in parameter details like format limits, row/column constraints, and ZIP output. No output schema exists, but the description is sufficient for an agent to understand what the tool produces at a high level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The tool description itself adds no parameter-level meaning beyond the 2x2/3x3 grid examples, which is enough to meet the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: split an image into a grid of equal tiles, with concrete examples. This clearly distinguishes it from siblings like photo_crop, photo_image_diff, or photo_collage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for slicing images into grids but does not explicitly state when to choose it over alternatives such as photo_crop or photo_collage_mosaic. There is no exclusionary guidance or mention of alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_meme_generatorAInspect

Meme Generator — Add bold top and bottom caption text to an image in Impact-style font. At least one of top_text/bottom_text is required. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesBase image — JPG, PNG, WebP, BMP (max 25MB)
fontNoIf Impact isn't installed the server substitutes DejaVu-Sans-Bold; X-JE-Font-* response headers report what actually rendered.Impact
top_textNoTop caption. At least ONE of top_text/bottom_text must be non-empty or the request is rejected.
font_sizeNo'auto' or a pixel size.auto
font_colorNoCaption fill — #rrggbb or #rrggbbaa hex only; invalid values silently revert to #ffffff.#ffffff
bottom_textNoBottom caption.
stroke_colorNoCaption outline hex; invalid values silently revert to #000000. Drawn at 2x stroke_width beneath the fill.#000000
stroke_widthNoOutline stroke width, 1-8.
output_formatNoDefaults to the input image's format.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false) correctly signal a mutating operation, and the description adds the key validation behavior: at least one caption is required or the request is rejected. Much of the deeper behavioral detail (silent font substitution with X-JE-Font-* headers, invalid colors reverting to defaults, stroke layering) lives in the schema rather than the description, but it is still available to the agent. The description uniquely contributes the rendered-style context but no side-effect, authentication, or rate-limit details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a category tag, with zero filler. The first sentence front-loads verb, resource, and style; the second states the single cross-parameter validation rule that determines request success. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool, the description is complete enough because the schema covers every parameter in detail and annotations establish the safety profile. No output schema exists, but the expected result (the image with captions applied) is self-evident from the purpose statement. Minor gap: the description doesn't mention response shape or the output_format default behavior, but the schema already covers the latter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema descriptions are unusually rich (font fallback behavior, silent color reverts, stroke draw order, enum constraints, defaults). The description's only param-adjacent statement ('At least one of top_text/bottom_text is required') duplicates what top_text's schema description already states, so the description adds no net new parameter meaning. Baseline 3 applies since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Add') with a clear resource ('caption text to an image') and distinctive style markers ('bold top and bottom... Impact-style font'), making the meme-generation purpose unmistakable. It differentiates from siblings like photo_watermark and photo_image_overlay through the top/bottom caption framing, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is implied by the 'Meme Generator' framing, so an agent can reasonably infer when to invoke it. However, with 100+ siblings including overlapping tools like photo_editor, photo_watermark, and photo_image_overlay, there is no explicit when-to-use/when-not-to-use guidance or named alternatives to route around confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_noise_reducerBInspect

Noise Reducer — Reduce image noise and grain using ImageMagick's denoising filters. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, BMP, TIFF (max 25MB)
modeNoDenoise algorithm.auto
sharpenNoOptional post-denoise sharpening.none
strengthNoSTRING enum '1'-'4', not an int. Invalid values silently become '2'. Ignored when mode=smart — the analyzer overrides it.2
output_formatNoOptional output format; defaults to the input format.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false. The description adds no further behavioral detail, such as whether the input file is overwritten, what kind of output file is returned, or how the different filter modes affect processing. For a mutating tool this is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tight sentence that leads with the purpose and the key mechanism. It is appropriately short for a tool with no complex instructions, and every word is functional without padding or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the schema covers all parameters and annotations cover the basic safety profile, the description is adequate for a straightforward denoising tool. However, with no output schema and no guidance on mode selection or expected output, an agent may still be uncertain about the result format and when to route here instead of a similar photo tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters. The description itself adds nothing about parameters, which is acceptable at the baseline of 3, but it does not enrich the meaning of any parameter beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Reduce image noise and grain') on a specific resource, and names the underlying method (ImageMagick's denoising filters). This is a precise, self-contained statement of the tool's function, and it naturally distinguishes it from sibling photo tools like photo_color_adjuster or photo_compress.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied rather than explicit: a noisy or grainy photo points to this tool. However, there is no explicit guidance on when not to use it, nor is any sibling alternative named, so the agent has to infer the boundary between this and broader tools like photo_editor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_resizeAInspect

Resize Image — Resize an image by pixel dimensions, percentage, fit-within-max, or exact canvas. Supports maintaining aspect ratio. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, GIF, BMP
modeNo'max' fits within width×width and never upscales; 'canvas' resizes then pads to exact WxH with bg_color; 'percentage' scales by %.dimensions
widthNoTarget width px. In the default 'dimensions' mode at least one of width/height is REQUIRED; also required for width/max/canvas modes.
heightNoTarget height px.
bg_colorNoCanvas background color (mode=canvas).white
percentageNoScale percentage — REQUIRED when mode=percentage.
strip_metaNoStrip EXIF metadata from the output.
force_exactNoForce exact dimensions, ignoring aspect ratio.
maintain_ratioNoKeep aspect ratio (dimensions mode). Field name is 'maintain_ratio' — not 'maintain_aspect'.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context by listing resize modes and aspect-ratio support, while annotations already indicate the tool is neither read-only nor destructive. It does not disclose output format, whether the original file is modified, or side effects such as default EXIF stripping, though some of this appears in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with only two content-bearing sentences and a category tag. The 'Resize Image —' prefix is somewhat redundant with the tool/title name, but the rest is efficient and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nine parameters and full schema coverage, the description provides enough high-level context to select and invoke it correctly. The output is inferable as a resized image, and the missing return-format details are minor given the otherwise complete schema and clear operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions for every field, so the description carries little parameter burden. It provides high-level mode categories that map to the mode enum, but it adds no meaningful parameter semantics beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation ('Resize an image') and enumerates the resizing strategies: pixel dimensions, percentage, fit-within-max, and exact canvas. This makes the tool's purpose clear and distinct from sibling crop/editor tools, though it does not explicitly name a sibling for contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool — when an image needs resizing — and highlights aspect-ratio support, but it does not explicitly say when to prefer this over photo_crop, photo_compress, or photo_editor, nor does it mention exclusions. Usage context is present but implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_shadow_adderAInspect

Add Drop Shadow — Add a drop shadow effect to an image, producing a PNG with transparency. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
blurNoShadow edge softness in px. 0 = hard-edged rectangle of a shadow.
fileYesImage to shadow — JPG, PNG, or WebP only (max 25 MB). BMP is NOT accepted here, unlike most photo tools.
angleNoShadow direction in degrees.
opacityNoShadow darkness 0-100. Affects the shadow layer only, never the image itself.
distanceNoShadow offset in px.
shadow_colorNoHex shadow color. Field name is 'shadow_color' — not 'color'.#000000
output_formatNoOptional output format.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description's mutation profile is consistent with the schema. The description adds value by disclosing the output artifact ('producing a PNG with transparency'), signaling a non-destructive transform that returns a new file rather than modifying the input in place. No contradiction 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact two-clause sentence that front-loads the verb and resource and emits the key output trait in the second clause. Minor redundancy: the leading 'Add Drop Shadow' repeats the title before adding anything new, which slightly dilutes the otherwise tight structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description covers the essential return trait ('PNG with transparency'), and all 7 parameters are documented in the schema. The only gap is the vague optional output_format parameter, whose allowed values and interaction with the always-PNG claim are not specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema descriptions go well beyond typical naming: blur explains the 0 = hard-edged case, opacity scopes its effect to the shadow layer only, file lists accepted formats and the 25 MB cap plus the BMP exclusion, and shadow_color explicitly warns about the field name. The main description adds no parameter detail, but the schema fully compensates, so the agent is exceptionally well informed about how to invoke each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Add') and resource ('drop shadow effect to an image'), plus a distinctive output trait ('producing a PNG with transparency'). Within the sibling list of photo_* tools (photo_watermark, photo_image_overlay, photo_editor), none targets drop shadows, so the purpose is unambiguous without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The niche effect ('drop shadow') plus the output constraint ('PNG with transparency') give a clear context for when to select this tool. The file parameter adds an explicit exclusion — 'BMP is NOT accepted here, unlike most photo tools' — though the main description stops short of naming alternative tools or explicitly routing between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_svg_to_pngAInspect

SVG to PNG — Rasterize an SVG vector file to PNG (or JPG/WebP) at a chosen resolution, DPI, and background color. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
dpiNoString, not a number — only '72', '96', '144', '300'; anything else silently becomes '96'.96
fileYesSVG file (max 25MB)
widthNoOutput width in px. 0 (default) = render at the SVG's intrinsic size.
heightNoOutput height in px. 0 = intrinsic.
bg_colorNo'transparent', 'white', or a hex color.transparent
output_formatNojpg cannot hold transparency: without an explicit bg_color the artwork is flattened onto white, never black.png

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnlyHint=false and destructiveHint=false, so the safety baseline is set. The description adds the meaningful behavioral concept of rasterization and optional output formats, but it does not disclose side effects, output delivery, or whether the original file is preserved, which would add further transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the action and output format, then summarizes the adjustable options. The '[category: photo]' suffix is small and doesn't add clutter. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter conversion tool with a fully descriptive schema, the description captures the core purpose, output options, and key customization dimensions. It doesn't spell out return-value behavior, but no output schema exists and the converted raster file is strongly implied; explicit sibling differentiation would be the only notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter already has a detailed explanation, including the dpi string-coercion warning and jpg transparency behavior. The description only summarizes 'resolution, DPI, and background color' without adding new parameter-level meaning, so it sits at the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Rasterize') plus a clear resource ('SVG vector file') and output ('PNG (or JPG/WebP)'), and names the key options (resolution, DPI, background color). This clearly distinguishes it from generic sibling tools like photo_format_converter by emphasizing the SVG-vector-to-raster workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use this when an SVG needs to become a raster PNG/JPG/WebP. However, the description does not explicitly state when to prefer this over alternatives such as photo_format_converter or convert_file, nor does it give exclusion criteria, so the agent must infer routing from the tool name and wording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_to_textAInspect

Photo to Text (OCR) — Extract text from an image via OCR. Language selection uses comma-separated ISO-639-1 codes (en, fr, de, ...) — not Tesseract codes. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, BMP, TIFF (max 15MB)
outputNojson returns structured results; text returns plain text.json
languagesNoComma-separated ISO-639-1 codes, e.g. 'en' or 'en,fr'. Supported: en, fr, de, es, pt, it, zh, ja, ar, ru, ko, nl. Field name is 'languages' — not 'language'; Tesseract codes like 'eng' are NOT recognized.en
preprocessNoApply image preprocessing before OCR.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide the basic safety profile (readOnlyHint=false, destructiveHint=false), and the description adds the OCR operation plus the language-code caveat. It does not disclose side effects, output formats, or processing details, but it does not contradict 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the core purpose first and includes a valuable language-code warning. Minor redundancy exists between 'Photo to Text (OCR)' and 'Extract text from an image via OCR,' and the trailing '[category: photo]' adds limited value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a relatively simple OCR tool, the schema already documents file formats, size limit, output modes, language list, and the preprocess flag. The description covers the core purpose and the key ISO/Tesseract pitfall, which is sufficiently complete given the rich schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description's warning about ISO-639-1 codes vs Tesseract codes is useful but already present in the schema, so it does not add meaning beyond the structured parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation ('extract text') and the resource ('an image via OCR'), so an agent knows what the tool does. It does not explicitly contrast with sibling tools like pdf_ocr or describe_image, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose statement implies 'use this when you need OCR on an image,' providing modest usage context. However, there is no explicit guidance on when not to use it or which sibling tool to select instead, such as pdf_ocr for PDF-based OCR.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_upscalerAInspect

Image Upscaler — Enlarge an existing image 2x or 4x with super-resolution detail recovery, with an optional face-enhancement pass. Sharpens and upsizes a user-supplied photo; does not generate new imagery. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesHard 10 MB cap (400 above it). JPG/PNG/WebP/BMP only — no GIF/HEIC. Big images risk the 120s upscale timeout.
modelNofast (default) — ~16s at any scale, softer on very fine texture. quality — best fine detail but 50s at 2x and 245s at 4x on CPU; expect a wait.fast
scaleNoUpscale factor; invalid values silently fall back to 2. With the default fast model 4x costs the same as 2x.
face_enhanceNoRun the additional face-enhancement pass.
output_formatNoOptional output format; defaults to the input format.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though the description starts with the title and annotations are sparse, it adds meaningful behavior: sharpening, no new imagery generation, and the face-enhancement pass. Algorithms and safety are not covered, but the key 'does not generate' boundary is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence repeats the title and adds little; the meaningful behavioral 'sharpens and upsizes... does not generate' sits in the middle. The category tag is minimal but acceptable. A sharper lead would earn a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Comprehensive schema descriptions and output_format handling make the essential call details clear. Since there's no output schema, the description could have explained returned image info or size, but the usage path is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and parameter descriptions are rich (10MB cap, timeout risk, model timing, fallback behavior). The description only repeats scale and general purpose, so with full coverage the baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific verb ('Enlarge', 'Sharpens and upsizes') + resource ('existing image') + scale options (2x/4x). Explicitly distinguishes from generation: 'does not generate new imagery.' In a large sibling set with many photo_* tools, this unambiguously identifies it as the upscaler.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context for use: enlarge an existing photo, optional face enhancement, and a negative boundary (does not generate). It doesn't explicitly name the sibling alternatives (photo_resize, photo_image_upscaler absent) or state when to use it vs photo_resize, so it misses the when-not-to-use threshold for a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

photo_watermarkAInspect

Add Image Watermark — Overlay a text watermark on a photo with configurable position (ImageMagick gravity names), opacity, and font size. [category: photo]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJPG, PNG, WebP, GIF, BMP, HEIC, TIFF. Max 25 MB. Output keeps the input format.
textNoDefaults to 'John's Essentials' when omitted — always pass your own. A leading '@' is stripped.John's Essentials
opacityNoINTEGER percent 0-100 — a fraction like 0.5 parses as 0 (invisible watermark).
positionNoCase-sensitive ImageMagick gravity name — 'center' (lowercase) or 'top-left' are NOT recognized and silently fall back to SouthEast.SouthEast
font_sizeNoPoints. Out-of-range values (<6 or >500) silently reset to 36 — no error returned.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the operation is not read-only and not destructive, so the safety profile is covered; the description's 'Overlay' is consistent with that. It adds the text-watermark and ImageMagick-gravity behavior, but it does not disclose what happens to the source file or what the tool returns, leaving some behavior implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence covers action, resource, and key options, followed by a compact category tag. Every word earns its place; there is no redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description plus the fully documented schema gives an agent the required file, defaults, boundaries, and fallback behaviors, so it is nearly complete for a 5-parameter image tool. It loses a point only because it never states the return/output behavior, and there is no output schema to carry that information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are documented in the schema (100% coverage), so the baseline is 3. The description echoes position, opacity, and font size at a high level but adds no semantics beyond the schema, which already contains defaults, ranges, enums, and fallback behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete operation ('Overlay a text watermark on a photo') with a clear resource and the configurable knobs (position, opacity, font size). The word 'photo' and the [category: photo] tag distinguish it from sibling watermark tools like media_add_watermark and pdf_watermark.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied by the description and accepted image formats, but there is no explicit statement of when to prefer this tool over sibling watermark tools such as media_add_watermark or pdf_watermark, nor any exclusions. An agent must infer applicability from the name/category rather than being told.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

share_createAInspect

Create Share Link — Create a public download link for a file that works for 24 hours — anyone with the link can download it, no sign-in needed. Use after a conversion to hand the result to a teammate without re-uploading. Business tier only. [category: convert] [requires the business plan]

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesMax 500 MB. The multipart part's Content-Type becomes the download's MIME — omit it and the file serves as octet-stream.
filenameNoOptional download name. Falls back to the multipart filename.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=false and openWorldHint=true, so the description carries the burden. It discloses the security-relevant behavior: the link is public, requires no sign-in, and expires after 24 hours. It also notes the plan restriction. Minor gap: the return value (the actual link) is implied but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose and behavior. The only minor redundancy is 'Business tier only' appearing in prose and again in the bracketed '[requires the business plan]' tag, but overall it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with full schema coverage, the description covers what the tool does, when to use it, who can access the result, expiration, and plan requirements. Since there is no output schema, explicitly stating that the tool returns the generated link would make it fully complete, but the current wording makes that strongly inferable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both 'file' and 'filename' already well documented, including size limits and MIME behavior. The description adds no additional parameter-level meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create a public download link for a file.' It adds concrete behavioral detail (24-hour validity, anyone can download, no sign-in needed) that makes the tool unmistakable and distinguishes it from siblings like email_file without needing to compare them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: 'Use after a conversion to hand the result to a teammate without re-uploading.' It also flags the business-tier requirement. It does not explicitly name alternatives or when not to use it, but the intended scenario is sufficiently concrete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

web_extract_tableA
Read-only
Inspect

Extract Table — Extract an HTML table from a public web page at a user-provided http(s) URL, as JSON rows or CSV. [category: web]

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYeshttp(s) URL containing the table
outputNoBoth values return a JSON envelope: 'json' puts a rows matrix in 'rows'; 'csv' puts one CSV string in the 'csv' field — never a file.json
timeout_msNoOptional fetch timeout override in milliseconds.
user_agentNoOptional custom User-Agent header.
table_indexNo0-based table index
acknowledge_robotsNoBusiness+ only: proceed even when robots.txt disallows the page.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety and external-access profile. The description adds the 'public web page' scope but does not disclose behaviors like robots.txt enforcement, failure modes, or what happens when no table is found; nor does it contradict 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentence is tight and front-loaded with the action and resource. Minor redundancy exists in the 'Extract Table —' prefix that duplicates the title, and '[category: web]' adds limited value, but overall the description is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with no output schema, the description plus detailed parameter schema cover the required URL, output envelope, timeout, user agent, table index, and robots handling. The main gap is explicit guidance on sibling-tool selection and expected error behavior, but an agent can invoke the tool correctly from this definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is already well documented, including the JSON envelope behavior for CSV output. The description's 'JSON rows or CSV' adds no new detail beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Extract an HTML table from a public web page at a user-provided http(s) URL, as JSON rows or CSV.' It clearly distinguishes this from generic web_fetch and web_scrape_page siblings by targeting table extraction with explicit output formats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when a user wants a table from a public web page, and it signals limitations like 'public' and http(s)-only. However, it does not explicitly mention alternatives, exclusions, or when to prefer web_fetch/web_scrape_page, leaving routing partially to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

web_fetchA
Read-only
Inspect

Fetch URL — Fetch the raw (decoded) HTML of a public web page at a user-provided http(s) URL. SSRF-guarded, http/https only, 10 MB body cap, robots-aware. [category: web]

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYeshttp(s) URL to fetch
timeout_msNoOptional fetch timeout override in milliseconds.
user_agentNoOptional custom User-Agent header.
acknowledge_robotsNoBusiness+ only: proceed even when robots.txt disallows the page.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful behavioral constraints beyond annotations: SSRF-guarded, http/https only, 10 MB body cap, robots-aware, and decoded output. It doesn't detail robots-disallow failure behavior, but the schema's acknowledge_robots parameter partially covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the action and object appear immediately, followed by a dense but readable constraint clause. Every sentence earns its place, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still conveys the returned artifact ('raw (decoded) HTML') and key operational limits. It omits behavior on non-200 responses, redirects, and exact robots.txt handling, but the schema and annotations cover enough that an agent can invoke it correctly. A small gap, not a major one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter already carries a meaningful description. The tool description contributes contextual constraints for the URL (public, http(s), size cap) but does not add per-parameter semantics beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Fetch'), resource ('raw (decoded) HTML of a public web page at a user-provided http(s) URL'), and clear scope constraints. This distinguishes it from siblings like web_scrape_page or web_extract_table, which imply structured extraction rather than raw HTML retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through 'raw (decoded) HTML' and 'public web page', and the constraints 'http/https only' and 'robots-aware' set boundaries. However, the description never explicitly says when to choose this tool over alternatives such as web_scrape_page or convert_url_to_pdf, so the guidance is adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

web_scrape_pageA
Read-only
Inspect

Scrape Page — Extract structured data from a public web page at a user-provided http(s) URL: CSS-selector mode returns text per selector; readability mode returns the main article as clean markdown. [category: web]

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYeshttp(s) URL to scrape
modeNoChooses the response shape: selectors returns per-key text under 'data'; readability returns the article object under 'article'.readability
selectorsNokey → CSS selector map — REQUIRED (non-empty) when mode=selectors
timeout_msNoOptional fetch timeout override in milliseconds.
user_agentNoOptional custom User-Agent header.
acknowledge_robotsNoBusiness+ only: proceed even when robots.txt disallows the page.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and openWorldHint=true; the description builds on them by adding the 'public web page' constraint and the concrete output transformations (text-per-selector, clean markdown). No contradiction with annotations exists — the operation is read-only. The description does not mention robots.txt enforcement, but that behavior is fully specified in the acknowledge_robots parameter schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler: verb, resource, scope, and both mode behaviors are front-loaded before the category tag. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining return shapes, and it does — both modes' outputs are stated. Combined with 100% parameter schema coverage and read-only annotations, the remaining gap (robots.txt default behavior in prose) is covered by the acknowledge_robots parameter description, so nothing an agent needs to invoke the tool correctly is truly missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters, including the mode enum and the REQUIRED conditional on selectors. The description's mode summary adds marginal color but no parameter-level detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource — 'Extract structured data from a public web page at a user-provided http(s) URL' — and immediately scopes the tool to public pages, which helps set it apart from siblings like web_fetch and web_extract_table that operate on the same URL space. It does not name any sibling explicitly, so differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear internal mode-selection guidance ('CSS-selector mode returns text per selector; readability mode returns the main article as clean markdown'), which helps an agent decide which mode to invoke. However, it never addresses when to choose this tool over its siblings (web_fetch, web_extract_table, analyze_readability, convert_url_to_pdf), leaving alternative routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 144 tool updates
    • First observedanalyze_audio
    • First observedanalyze_color_palette
    • First observedanalyze_csv
    • First observedanalyze_duplicate_detector
    • First observedanalyze_encoding_detector
    • First observedanalyze_file
    • First observedanalyze_file_diff
    • First observedanalyze_font_detector
    • First observedanalyze_grammar_check
    • First observedanalyze_grammar_check_batch
    • First observedanalyze_hash
    • First observedanalyze_image_quality
    • First observedanalyze_image_similarity
    • First observedanalyze_link_extractor
    • First observedanalyze_metadata
    • First observedanalyze_pdf_inspector
    • First observedanalyze_readability
    • First observedanalyze_ssl
    • First observedanalyze_video
    • First observedanalyze_word_count
    • First observedanalyze_word_frequency
    • First observedchatwithyourpdf
    • First observedconvert_archive
    • First observedconvert_batch
    • First observedconvert_chain
    • First observedconvert_contact
    • First observedconvert_data
    • First observedconvert_document
    • First observedconvert_ebook
    • First observedconvert_file
    • First observedconvert_geo
    • First observedconvert_jpg_to_pdf
    • First observedconvert_parquet
    • First observedconvert_sqlite
    • First observedconvert_text
    • First observedconvert_unit_convert
    • First observedconvert_url_to_pdf
    • First observedconvert_video
    • First observedconvert_word_to_pdf
    • First observeddescribe_image
    • First observedemail_file
    • First observedesign_place
    • First observedesign_prepare
    • First observedgenerate_ascii_art
    • First observedgenerate_barcode
    • First observedgenerate_business_card
    • First observedgenerate_certificate
    • First observedgenerate_favicon
    • First observedgenerate_hash
    • First observedgenerate_invoice
    • First observedgenerate_lorem_ipsum
    • First observedgenerate_password
    • First observedgenerate_placeholder_image
    • First observedgenerate_qr_code
    • First observedmedia_add_watermark
    • First observedmedia_compress_video
    • First observedmedia_extract_audio
    • First observedmedia_extract_frames
    • First observedmedia_merge_audio
    • First observedmedia_mute_video
    • First observedmedia_trim_audio
    • First observedmedia_trim_video
    • First observedoctopus_delete
    • First observedoctopus_list
    • First observedoctopus_make_folder
    • First observedoctopus_mkdir
    • First observedoctopus_move
    • First observedoctopus_move_file
    • First observedoctopus_read
    • First observedoctopus_search
    • First observedoctopus_search_meta
    • First observedoctopus_write
    • First observedpdf_compress
    • First observedpdf_crop
    • First observedpdf_delete_pages
    • First observedpdf_excel_to_pdf
    • First observedpdf_excel_to_pdf_batch
    • First observedpdf_excel_to_pdf_inspect
    • First observedpdf_extract_pages
    • First observedpdf_file_info
    • First observedpdf_flatten
    • First observedpdf_flatten_batch
    • First observedpdf_get_metadata
    • First observedpdf_grayscale
    • First observedpdf_header_footer
    • First observedpdf_html_to_pdf
    • First observedpdf_images_to_pdf
    • First observedpdf_interleave
    • First observedpdf_merge
    • First observedpdf_ocr
    • First observedpdf_page_count
    • First observedpdf_page_numbers
    • First observedpdf_pptx_to_pdf
    • First observedpdf_protect
    • First observedpdf_remove_metadata
    • First observedpdf_remove_watermark
    • First observedpdf_reorder
    • First observedpdf_repair
    • First observedpdf_reverse
    • First observedpdf_rotate
    • First observedpdf_rtf_to_pdf
    • First observedpdf_set_metadata
    • First observedpdf_split
    • First observedpdf_thumbnails
    • First observedpdf_to_excel
    • First observedpdf_to_excel_batch
    • First observedpdf_to_excel_inspect
    • First observedpdf_to_images
    • First observedpdf_to_images_batch
    • First observedpdf_to_pdfa
    • First observedpdf_to_text
    • First observedpdf_to_word
    • First observedpdf_txt_to_pdf
    • First observedpdf_unlock
    • First observedpdf_watermark
    • First observedphoto_bg_remover
    • First observedphoto_collage
    • First observedphoto_collage_animated
    • First observedphoto_collage_mosaic
    • First observedphoto_color_adjuster
    • First observedphoto_compress
    • First observedphoto_compress_to_size
    • First observedphoto_crop
    • First observedphoto_editor
    • First observedphoto_exif_viewer
    • First observedphoto_face_blur
    • First observedphoto_face_detect
    • First observedphoto_flip_rotate
    • First observedphoto_format_converter
    • First observedphoto_image_diff
    • First observedphoto_image_overlay
    • First observedphoto_image_splitter
    • First observedphoto_meme_generator
    • First observedphoto_noise_reducer
    • First observedphoto_resize
    • First observedphoto_shadow_adder
    • First observedphoto_svg_to_png
    • First observedphoto_to_text
    • First observedphoto_upscaler
    • First observedphoto_watermark
    • First observedshare_create
    • First observedweb_extract_table
    • First observedweb_fetch
    • First observedweb_scrape_page

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.2/5.0
Disambiguation2/5

Multiple tool pairs are near-identical: octopus_mkdir/octopus_make_folder and octopus_move/octopus_move_file are literal duplicates, analyze_hash/generate_hash both compute hashes, convert_word_to_pdf overlaps convert_document, and photo_compress/photo_compress_to_size plus pdf_thumbnails/pdf_to_images have fuzzy boundaries. The descriptions are detailed and cross-reference each other helpfully, but at 144 tools an agent will regularly misselect.

Naming Consistency3/5

The dominant {category}_{verb}_{object} snake_case pattern (pdf_*, photo_*, convert_*, analyze_*, media_*) is largely consistent and predictable. However, outliers like chatwithyourpdf and describe_image break the category-prefix convention, and the octopus namespace mixes bare verbs (read, write, mkdir) with verb_noun forms (make_folder, move_file, search_meta) inconsistently.

Tool Count2/5

144 tools is an extreme count for any MCP server. The broad scope (PDF, photo, video, audio, conversion, analysis, generation, file storage, web, e-sign) justifies some volume, but the count is inflated by batch and inspect variants (pdf_to_excel + batch + inspect), duplicate tools, and overlapping converters. An agent faces an overwhelming selection surface.

Completeness4/5

Per-domain coverage is remarkably deep: PDF spans merge/split/compress/protect/unlock/metadata/OCR/watermark and bidirectional conversion; photo covers editing, format conversion, face handling, OCR, and collage; file storage has full CRUD plus search. Minor gaps exist (no audio transcription, no video metadata editing, no deletion of PDF pages is actually covered via pdf_delete_pages) but the surface has no dead ends for its declared domains.

Resources