Skip to main content
Glama

FreeDailyPro Tools

Server Details

211+ MCP tools for AI agents behind one API key: PDF (merge, split, compress, redact, fill forms), documents, text and developer utilities, 55 finance, tax and health calculators, plus image, audio and video conversion. Files are processed in memory and nothing is stored. Trial key with 20,000 calls/month at freedailypro.com/developers.

Ownership verified
Status
Healthy
Uptime
11.2% over 60 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

C2.3/5.0

Scored across 227 tools

Disambiguation2/5

The set contains many overlapping tools: eight PDF compression variants, several PPTX compression levels, duplicate unit converters (converters_units vs convert_length/weight/temperature), and multiple tax/paycheck calculators. Descriptions are detailed, but an agent must parse long text to choose, and several names suggest the same operation.

Naming Consistency3/5

All names are snake_case, which is readable, but conventions vary: some are action_object (generate_password), some category_action (audio_compress, pdf_merge), and some are bare nouns (base64, percentage, hashtags) or inconsistent category prefixes (converters_, convert_, calculate_). The result is mixed rather than a predictable verb_noun pattern.

Tool Count1/5

227 tools is far beyond a well-scoped set and creates cognitive overload; many are near-duplicates or mode variants that could be parameters. This is an extreme mismatch for a single MCP server.

Completeness4/5

The suite covers a broad utility domain—text, media conversion, PDF/PPTX processing, business documents, planning, publishing and calculators—with few obvious dead ends. Gaps exist (e.g., no Word/Excel editing or OCR), but most daily tasks have a tool.

Available Tools

227 tools
analyze_readabilityB
Read-onlyIdempotent
Inspect

Reading level checker — Flesch-Kincaid style metrics

NameRequiredDescriptionDefault
textYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The phrase 'Flesch-Kincaid style metrics' adds a little context about what the computation produces, but 'style' is hedged and nothing is said about language assumptions (Flesch-Kincaid is English-oriented), text length limits, or whether multiple indices are 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?

A single front-loaded phrase with zero filler, which is the right shape for a simple one-input utility. It is arguably under-specified rather than over-long, so the size itself is not the problem.

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 one parameter, full annotation coverage and no output schema, the description is close to sufficient but leaves the return shape entirely unstated — an agent cannot tell whether to expect a single grade level, a set of index scores, or per-sentence breakdown. For a tool with no output schema, one clause on the returned metrics would have closed the gap.

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

Parameters2/5

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

Schema description coverage is 0% and the description never mentions the single required 'text' parameter, so nothing is added beyond the schema's bare string type. Meaningful gaps remain undocumented: minimum/typical input length, whether HTML/markdown should be stripped, and language constraints for a metric that is language-specific.

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?

Names the resource (reading level / readability) and the specific metric family (Flesch-Kincaid style), so an agent can tell it apart from near neighbours like word_count or check_grammar. It stops short of explicitly disambiguating from those siblings, which is what a 5 would require.

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 when-to-use, when-not-to-use, or alternative routing guidance. The agent must infer on its own whether this is for scoring a document, gating content, or comparing drafts, and whether check_grammar or word_count is the better fit for a given request.

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

apply_timezone_offsetC
Read-onlyIdempotent
Inspect

Timezone converter — apply fixed offset to UTC

NameRequiredDescriptionDefault
offsetYes
utcIsoYes

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so safety is covered. The one piece of added context is 'fixed offset', implying arithmetic rather than IANA timezone/DST lookup — useful, but it does not say what the return value looks like or how invalid offsets are handled.

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?

It is a single front-loaded sentence with zero waste, but it is too terse for a tool with two undocumented required parameters. Conciseness here shades into under-specification rather than efficient structure.

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

Completeness2/5

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

With no output schema and zero parameter descriptions, the description is the only source of contract detail and it omits offset syntax, sign convention, and return format. For a small utility that may be tolerable, but it is not complete enough to call correctly without trial and error.

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

Parameters2/5

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

Schema description coverage is 0% for two required parameters, so the description must compensate and largely does not. 'UTC' and 'fixed offset' hint at the semantics of utcIso and offset, but the accepted offset format ('+05:30' vs '330' vs '-8') and the ISO timestamp shape are entirely undocumented.

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+resource: applying a fixed offset to a UTC time, which is more precise than a generic 'timezone converter'. It does not distinguish itself from the very similar sibling convert_timestamp, which likely overlaps.

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 when-to-use guidance, no exclusion of alternatives such as convert_timestamp, and no mention of prerequisites (e.g., that the input must be UTC, or that DST rules are not consulted). The agent must infer routing from the name alone.

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

audio_compressA
Read-onlyIdempotent
Inspect

Compress audio toward a target file size (targetFileSize such as "2MB"; default half the original)

NameRequiredDescriptionDefault
fileBase64Yes
targetFileSizeNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds the useful default behavior (half the original size), but says nothing about whether compression is lossy, output format, or how the result 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.

Conciseness5/5

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

A single well-front-loaded sentence with no waste; the example and default are packed into a short parenthetical rather than padding the text.

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 no output schema, the description covers the size target and default but omits the required input encoding and the shape of the returned (presumably base64) compressed file. Adequate but with 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 0%, so the description carries the burden. It does meaningfully document targetFileSize (example '2MB', default rule), but leaves fileBase64 unexplained — an agent must guess that it is the base64-encoded source audio and that it is required.

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 and resource ('Compress audio') plus the objective (target file size), which clearly separates it from audio_convert or audio_normalize. It stops short of explicitly naming which sibling to use instead when the goal is format change rather than size reduction.

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 only implied: an agent can infer it applies when a smaller audio file is wanted, and the default ('half the original') hints at the no-parameter case. There is no explicit when-not guidance nor a pointer to alternatives such as audio_convert for format changes.

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

audio_convertC
Read-onlyIdempotent
Inspect

Convert audio between formats (mp3/wav/ogg/m4a/flac)

NameRequiredDescriptionDefault
formatYes
fileBase64Yes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered. The description adds no behavioral context beyond the format list — no size limits, no output encoding, no quality or lossy/lossless caveats for a transform tool.

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

Conciseness4/5

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

A single efficient sentence with the verb and resource front-loaded. It's terse to the point of under-specification rather than padded, so it earns its space but could say more.

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

Completeness2/5

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

With no output schema, two required parameters at 0% schema coverage, and no explanation of the base64 input or the return value, an agent cannot confidently construct a correct call from this description alone.

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

Parameters2/5

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

Schema coverage is 0%, so the description should carry the load. It lists the formats, but those are already the enum values, and it says nothing about fileBase64 — whether it's base64-encoded audio bytes, acceptable size limits, or how the converted result is returned.

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) and resource (audio) with the target format set, so the core action is unambiguous. It doesn't distinguish itself from siblings like audio_compress or video_extract_audio, 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 Guidelines2/5

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

No indication of when to reach for this versus audio_compress (size reduction) or video_extract_audio, nor any prerequisites. The agent is left to infer all routing from the name alone.

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

audio_denoiseB
Read-onlyIdempotent
Inspect

Reduce background noise in audio -- FFT-based spectral subtraction

NameRequiredDescriptionDefault
fileBase64Yes
strengthDbNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the algorithmic method (FFT spectral subtraction), which is useful context, but does not disclose supported audio formats, output format, or how results are returned. With annotations carrying the safety burden, this is adequate but limited.

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

Conciseness5/5

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

A single, front-loaded sentence that states the action and the method with zero wasted words. It is appropriately sized for the tool's simplicity.

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

Completeness2/5

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

For a two-parameter audio tool with no output schema and 0% schema description coverage, the description is incomplete. It omits supported input formats, the meaning and effect of 'strengthDb', and what the tool returns, all of which an agent needs to invoke it correctly.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions neither 'fileBase64' nor 'strengthDb', leaving both parameters entirely unexplained in prose. This is a significant gap for a tool where 'strengthDb' is non-obvious (units, range, effect).

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 ('Reduce background noise in audio') and adds the technical method ('FFT-based spectral subtraction'). This clearly distinguishes it from sibling tools like audio_normalize (volume) and audio_remove_silence (silence removal).

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 this tool versus alternatives such as audio_normalize, audio_remove_silence, or audio_compress. The purpose implies a use case, but no explicit conditions, exclusions, or sibling comparisons are provided.

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

audio_mergeC
Read-onlyIdempotent
Inspect

Merge multiple audio files into one

NameRequiredDescriptionDefault
filesBase64Yes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: it doesn't disclose supported audio formats, whether inputs must share sample rate/format, merge ordering, size/limit constraints, or what the result looks like. With one param and no output schema, that omission is a real 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?

A single front-loaded sentence with zero waste — appropriate for a simple one-parameter tool. It is arguably too terse for the tool's behavioral surface, but as conciseness it is efficient.

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

Completeness2/5

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

This is a low-complexity tool, but with no output schema the description should state what is returned (merged file, base64 payload, download reference) and what output format to expect. Neither is present, and format/ordering constraints on the inputs are also missing, so an agent cannot fully predict the call's outcome.

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?

There is a single parameter with 0% schema description coverage, so the description must compensate. 'Multiple audio files' usefully confirms the array holds audio content and implies at least two entries, but it adds no detail on encoding expectations, ordering semantics, per-item size limits, or whether formats may be mixed.

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 and resource: 'Merge multiple audio files into one.' That is unambiguous and distinguishes it from the audio_* siblings (convert, trim, compress), which transform rather than combine. It doesn't explicitly name an alternative, but the domain-specific name already separates it from the pdf_merge/pptx_merge/video_merge cousins.

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 when-to-use context, no prerequisites, and no pointer to alternatives such as audio_convert (for format unification before merging) or audio_normalize (for loudness consistency). An agent must infer everything from the tool name alone.

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

audio_normalizeB
Read-onlyIdempotent
Inspect

Normalize audio loudness -- EBU R128 broadcast standard

NameRequiredDescriptionDefault
fileBase64Yes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context that normalization follows EBU R128, but it does not describe the return format, input handling, or processing 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 a single front-loaded sentence with no wasted words. It communicates the core action and the relevant standard efficiently.

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?

There is no output schema, so the description should clarify what the tool returns, but it does not. It also omits input format expectations and any processing constraints, leaving meaningful gaps for an audio transformation tool.

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

Parameters2/5

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

Schema description coverage is 0%, and the single required parameter fileBase64 is not explained in the description. The description does not clarify accepted audio formats, size limits, or how the base64 string should be supplied.

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: 'Normalize audio loudness.' It also adds the EBU R128 broadcast standard, making the purpose concrete, but it does not explicitly distinguish this from sibling audio tools such as audio_compress.

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

Usage Guidelines2/5

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

The description implies the tool is used when audio loudness needs normalizing, but it gives no explicit when-to-use guidance, no exclusions, and no comparison to sibling tools like audio_compress or audio_denoise.

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

audio_pitchB
Read-onlyIdempotent
Inspect

Shift audio pitch without altering speed

NameRequiredDescriptionDefault
semitonesYes
fileBase64Yes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description usefully discloses the time-stretch behavior (pitch changes, duration preserved), which is the non-obvious trait, but says nothing about output format, size limits, or acceptable input ranges.

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 short sentence with the key constraint front-loaded and no filler. Efficient, though its brevity is partly the cause of the missing parameter detail.

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

Completeness2/5

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

For a two-parameter audio transformation with no output schema and 0% schema coverage, the description leaves critical gaps: how semitones are interpreted, what form the audio file must take, and what the tool returns. An agent could not reliably call this without guessing.

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

Parameters2/5

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

Schema coverage is 0%, so both parameters are bare in the schema and the description must compensate — and it does not. The word 'semitones' never appears in the description, so the unit, sign convention (positive = up), and sensible bounds are entirely undocumented, as is the required base64 encoding of fileBase64.

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 ('Shift') and resource ('audio pitch') plus the key behavioral qualifier 'without altering speed', which implicitly separates it from the sibling audio_speed. It does not name that sibling explicitly, so differentiation is inferential 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?

No explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. The 'without altering speed' clause implies a contrast with audio_speed, but the agent must make that inference itself.

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

audio_remove_silenceC
Read-onlyIdempotent
Inspect

Remove silence throughout an audio file

NameRequiredDescriptionDefault
fileBase64Yes
thresholdDbNo
minDurationSecondsNo

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered. The description adds nothing beyond the name: nothing about what happens to the gaps (removed vs. shortened with crossfade), whether the audio is returned as base64, or output format/quality. With annotations doing the heavy lifting, this is a low-value restatement.

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 with no filler or redundancy. It is efficient, though the brevity is partly under-specification rather than discipline.

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 3-parameter media-processing tool with no output schema, no annotations about output, and no parameter documentation, this description is too thin. It leaves the two tuning parameters and the shape of the result entirely unexplained.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries full burden, yet it never mentions thresholdDb (-30 dB default) or minDurationSeconds (0.3s minimum) — the two parameters that actually control behavior. An agent cannot tell what these mean or how to tune them without reading raw property names.

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

Purpose4/5

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

The description gives a specific verb+resource ('Remove silence') and clarifies the scope ('throughout an audio file'), which usefully separates it from edge-trimming siblings like audio_trim. It does not name any sibling explicitly, so the differentiation is inferred 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 Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no reference to alternatives such as audio_trim or audio_normalize. An agent must infer the choice from the tool name alone.

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

audio_speedB
Read-onlyIdempotent
Inspect

Change audio playback speed without altering pitch -- 0.5 to 2.0

NameRequiredDescriptionDefault
speedYes
fileBase64Yes

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, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds the genuinely useful behavioral fact that pitch is preserved and the speed range. It does not say whether a new audio artifact is returned, what format it is in, or whether the source is modified, which matters for a transform 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?

A single sentence with zero waste; the pitch-preservation guarantee and the numeric range are both front-loaded where an agent will read them.

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 2-parameter, non-destructive utility with no output schema, the essentials are present and the safety profile is delegated to annotations. The missing piece is input expectations for fileBase64, which is a notable gap for a media transform tool but not a disqualifying one.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden. It restates the speed range that the schema's min/max already enforce, and says nothing at all about fileBase64 — no supported audio formats, no encoding/size expectations — leaving half the required parameters undocumented in both places.

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 and resource ('Change audio playback speed') plus the key qualifier 'without altering pitch', which is exactly what separates it from the sibling audio_pitch. It stops short of naming audio_pitch or audio_convert explicitly, so sibling differentiation is implied 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 0.5–2.0 range gives a usable operating constraint, and the purpose clearly implies when to reach for it. But there is no explicit guidance on when to use this versus audio_pitch or audio_convert, and no prerequisite or input-format guidance.

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

audio_trimC
Read-onlyIdempotent
Inspect

Trim audio to a time range

NameRequiredDescriptionDefault
endSecondsYes
fileBase64Yes
startSecondsYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds only the notion of trimming to a time range and does not explain what is returned, whether the output is base64 audio, or how invalid ranges are handled.

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 words. Its brevity is efficient, though it is arguably too sparse for a three-parameter media transformation tool.

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

Completeness2/5

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

Given 3 required parameters, 0% schema description coverage, and no output schema, the description should explain input format and return behavior. It only states the broad operation, leaving key invocation details to inference.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for all three required parameters. It implies startSeconds and endSeconds via 'time range' but never explains fileBase64, units, inclusive/exclusive boundaries, or supported audio formats.

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: 'Trim audio.' It also states the core scope, 'to a time range.' However, it does not distinguish this tool from nearby siblings such as video_trim or audio_remove_silence, so an agent must infer when this is the right 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?

There is no guidance on when to use this tool versus alternatives like audio_remove_silence, audio_convert, or video_trim. It also omits prerequisites such as whether the input must be a supported audio format or whether start/end must be within the file duration.

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

base64C
Read-onlyIdempotent
Inspect

Base64 tool — encode or decode

NameRequiredDescriptionDefault
textYes
actionYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that — no note on what happens with invalid Base64 input, whether output is a raw string, or any size/character-encoding limits.

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 short, front-loaded clause with zero filler — the action is stated immediately. It is efficient but borders on under-specification rather than genuine tightness.

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

Completeness2/5

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

The tool is simple (2 required params, no nesting, no output schema) and rich annotations reduce the burden, but the description still leaves the input/output contract unclear: what 'text' means in each direction and what a failed decode returns. For a converter whose whole job is transforming strings, that contract should be stated.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parameter burden, and it does not. 'Encode or decode' merely echoes the action enum already present in the schema, and the required 'text' parameter is never explained (input string? already-encoded string when decoding?).

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 resource (Base64) and both supported operations (encode or decode), so an agent knows exactly what the tool does. It does not, however, differentiate itself from closely related siblings such as url_encode_decode or binary_ascii, which an agent could plausibly confuse it with.

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 when-to-use guidance and no mention of alternatives, despite a crowded sibling set containing url_encode_decode, binary_ascii, html_entities, and decode_jwt. The agent must infer the selection criteria entirely 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.

binary_asciiC
Read-onlyIdempotent
Inspect

Binary ascii converter

NameRequiredDescriptionDefault
textYes
actionYes
separatorNo

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds nothing beyond that — no mention of output shape (single string vs. separated tokens), how the separator arg changes results, or error behavior on invalid input.

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?

Three words with zero filler, so it is concise and front-loaded. But the brevity is achieved through under-specification rather than economy, which hurts more than it helps.

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 converter with a required enum action, an undocumented separator, and no output schema, the agent cannot tell what comes back or how the modes differ. The definition is far too thin for a 3-parameter tool with four conversion modes.

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

Parameters2/5

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

Schema description coverage is 0% for all three parameters, so the description carries the full burden and fails. It never mentions the action enum (including the non-obvious toHex/fromHex modes) or the purpose of the optional separator parameter (max length 3).

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

Purpose2/5

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

"Binary ascii converter" essentially restates the tool name and title rather than stating a verb+resource with scope. It also misleads by omitting that the tool converts to/from hex as well as binary, so an agent scanning descriptions would not know the full capability.

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

Usage Guidelines2/5

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

No guidance on when to use this versus siblings like base64, text_emoji_unicode, html_entities, or text_ascii_art. The agent must infer the use case entirely from the name.

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

business_bank_statement_to_csvD
Read-onlyIdempotent
Inspect

Bank statement to CSV

NameRequiredDescriptionDefault
textNoThe statement as pasted text. Send this, or a PDF in fileBase64 (or as the multipart field file).
yearNo
dateOrderNo
flipSignsNo
categorizeNotrue adds a category to every row from a short list of generic keywords (not a merchant database). Default false.
fileBase64NoA text-based PDF statement, base64 encoded, up to 20 MB and 100 pages. Scanned or photographed PDFs are refused with a 422: there is no OCR.
includeTextNotrue adds the lines read from the PDF to the response as extractedText, to see what the parser saw.
numberFormatNo
categoryRulesNoYour own rules: a row whose description contains match (any case) gets that category; the first matching rule wins, before the built-in keywords.

TDQS

D1.6/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. However, the description adds no behavioral context such as PDF limitations, OCR refusal behavior, or what the conversion returns.

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

Conciseness2/5

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

The four-word description is short but severely under-specified rather than concise. It is front-loaded with a restatement of the name and offers no actionable detail.

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

Completeness1/5

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

Given a 9-parameter conversion tool with no output schema and incomplete schema descriptions, the description is completely inadequate. It does not explain input modes, PDF restrictions, CSV output shape, or categorization behavior.

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

Parameters1/5

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

With 9 parameters and only 56% schema description coverage, the description must compensate for undocumented parameters. It provides no parameter semantics at all, leaving options like year, dateOrder, flipSigns, and numberFormat unexplained.

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

Purpose2/5

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

The description merely restates the tool name and title as 'Bank statement to CSV'. It does not specify what conversion entails, what formats are accepted, or how this differs from the many sibling business document tools.

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

Usage Guidelines1/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 this tool, what inputs are appropriate, or what alternatives exist among the sibling tools.

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

business_bill_of_sale_draftD
Read-onlyIdempotent
Inspect

Bill of sale draft

NameRequiredDescriptionDefault
dateYes
itemYes
buyerYes
priceYes
sellerYes

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that—no statement of what the tool returns (rendered document? plain text? downloadable asset?) or any constraints on the generated draft.

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

Conciseness2/5

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

It is short, but shortness here is under-specification rather than concision—a four-word fragment that conveys no actionable information. There is no front-loaded verb or scope statement.

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

Completeness1/5

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

With five required untitled parameters, no output schema, and no description of the return value, the definition is not complete enough for an agent to call the tool correctly. Nothing indicates what the draft contains, what format it takes, or how the inputs are rendered.

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

Parameters1/5

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

All five parameters (seller, buyer, item, price, date) are required with 0% schema description coverage, and the description supplies none of the missing meaning. Critical ambiguity is left unaddressed—e.g. 'price' is typed string with no currency/format hint, and 'date' is an unconstrained string with no expected format.

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

Purpose2/5

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

The description is essentially the tool name restated with no verb: 'Bill of sale draft' names the artifact but never says what the tool does with it (generate? fill a template? return text, PDF, or a file?). It gives no basis to distinguish it from siblings like business_lease_draft or business_promissory_note_draft.

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

Usage Guidelines1/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 this tool, when not to, or which sibling draft tool to prefer. An agent facing business_lease_draft, business_nda_draft, and business_poa_draft gets nothing to route on beyond the name itself.

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

business_blind_cvD
Read-onlyIdempotent
Inspect

Blind CV redactor

NameRequiredDescriptionDefault
textYes
namesNo
customNo
labelsNo
removeBirthNo
removeEmailNo
removeLinksNo
removePhoneNo
removeYearsNo
removeGenderNo
removeAddressNo
removePersonalNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds nothing about redaction behavior: what is redacted by default, what 'labels' produces, or what happens with the 11 optional flags. With zero annotation gaps on safety, the missing behavioral content still leaves the tool opaque.

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

Conciseness2/5

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

The three-word description is not concise in a useful sense; it is under-specified. There is no front-loaded statement of what the tool does or what the key parameters mean, so nothing in the text earns its place beyond a title.

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

Completeness1/5

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

For a 12-parameter redaction tool with no output schema and no parameter documentation, the description is completely inadequate. An agent has no information about defaults, output format, or how the redaction options interact.

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

Parameters1/5

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

There are 12 parameters with 0% schema description coverage, and the description explains none of them. It does not clarify whether 'names' is a list of names to redact, whether 'custom' is a custom regex, what 'labels' toggles, or what the remove* booleans default to, leaving the agent unable to populate the schema correctly.

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

Purpose2/5

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

The description 'Blind CV redactor' is a noun phrase that essentially restates the tool name and title ('Business Blind Cv'). It does not state a verb, what input it acts on, or that it returns an anonymized version of the supplied text.

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

Usage Guidelines1/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 this tool, no preconditions, and no reference to any sibling such as business_resume_outline. An agent has to infer the entire usage context from the name alone.

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

business_break_evenD
Read-onlyIdempotent
Inspect

Break even calculator

NameRequiredDescriptionDefault
priceYes
fixedCostsYes
startupCostNo
targetProfitNo
variableCostYes
expectedUnitsNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that, such as whether it only computes break-even units or also supports target profit, startup costs, or expected units.

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

Conciseness2/5

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

The description is only two words, which is concise but severely under-specified for a six-parameter calculation tool. It is front-loaded in the sense of being short, but the brevity comes at the cost of usefulness.

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

Completeness1/5

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

Given six parameters, no output schema, and no parameter descriptions, the definition is far too thin for an agent to understand what the tool returns or how the optional fields affect the calculation. The description does not fill any of the necessary context.

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

Parameters1/5

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

The schema has six parameters with 0% description coverage, including non-obvious optional fields like startupCost, targetProfit, and expectedUnits. The description provides no meaning for any parameter, so it does not compensate for the schema gap.

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

Purpose2/5

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

The description 'Break even calculator' essentially restates the tool name and title without adding a specific verb or resource scope. It signals the domain but does not distinguish this from related financial calculators like business_profit_margin or business_product_margin.

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 this tool versus alternatives, no prerequisites, and no exclusions. The agent must infer usage entirely from the name and schema.

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

business_contract_packC
Read-onlyIdempotent
Inspect

Contract templates

NameRequiredDescriptionDefault
typeYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered elsewhere. The description contributes nothing about what is actually returned (template text? a list of names?) or any other behavioral trait, adding no value beyond the structured fields.

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

Conciseness2/5

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

Extremely short, but this is under-specification rather than conciseness. The two-word phrase earns little and front-loads no actionable information.

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?

Even for a simple one-enum-parameter tool, the description omits what the tool produces and how it differs from the numerous draft-oriented siblings. With no output schema, the description should at least indicate the return artifact, which it does not.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate but does not. The single "type" enum is self-evident, but the description never explains what selecting a type does or what the resulting artifact looks like.

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

Purpose2/5

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

The description is a bare noun phrase, "Contract templates", that essentially restates the tool name/title without a verb. It identifies the resource domain but leaves ambiguous whether the tool lists, retrieves, or generates templates, so an agent cannot confidently distinguish it from siblings like business_nda_draft or business_bill_of_sale_draft.

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 this tool versus the many sibling draft tools (business_nda_draft, business_offer_letter_draft, etc.). The agent must infer the selection criteria entirely from the name and enum values.

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

business_cover_letterC
Read-onlyIdempotent
Inspect

Cover letter maker

NameRequiredDescriptionDefault
whyNoWhy this company, as a clause that follows 'because': 'your mission to cut waste'. A leading 'because' and capital letter are fixed for you.
dateYesThe letter date. A YYYY-MM-DD date is written out in full (November 5, 2026); other text is used as typed.
nameYes
roleYes
foundNoWhere you found the job, in a word or phrase: LinkedIn, on Indeed, a friend, your careers page. A preposition is added when it is missing.
yearsNoYears of experience: 8, 8 years or 8+ years all become '8 years of experience'.
companyYes
contactYesContact lines, one per line. At least one line must be an email address, a phone number or a LinkedIn address (422 otherwise); the closing line "I can be reached at ..." uses the email and phone, never a city.
managerNoHiring manager's name. Default: Hiring Manager.
includeDocxNotrue also returns the letter as a Word file in result.docx (filename, contentType, base64). Default false: the result holds the text and sections only.
achievementsYesBest results for this job, one per line

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered by structured data. The description adds nothing further — no mention that a 422 is returned when contact lacks email/phone/LinkedIn, no note on the default 'Hiring Manager' or the docx option, all of which live only 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.

Conciseness2/5

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

Three words is not concision but under-specification; there is no front-loaded statement of purpose, inputs, or output, so the brevity costs the agent information rather than saving it.

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 an 11-parameter generator with no output schema, yet the description says nothing about what is returned (text plus sections, optionally result.docx), what validation can fail, or how the inputs shape the letter. The schema carries most of the burden, leaving the definition inadequate for a tool of this complexity.

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

Parameters2/5

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

Schema description coverage is 73%, below the high-coverage threshold, and the description contributes zero parameter meaning. Several properties (name, role, company) are undocumented in both places, and nothing explains the interaction between the required fields and the generated letter structure.

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

Purpose2/5

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

"Cover letter maker" restates the tool name with no added specificity: no verb beyond an implied 'generate', no statement of what a cover letter output contains or how it differs from siblings like business_resume_outline or business_offer_letter_draft.

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 this tool versus the many adjacent document-generation siblings, and no prerequisites (required contact info, what inputs produce a usable letter) are mentioned anywhere in the description.

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

business_donation_receiptD
Read-onlyIdempotent
Inspect

Donation receipt maker from freedailypro

NameRequiredDescriptionDefault
einYesThe charity's Employer Identification Number, 9 digits (12-3456789 or 123456789). Printed on the receipt; a malformed number is a 422.
dateYesDate the gift was received, YYYY-MM-DD, a real date.
amountNoCash: the total the donor paid, in US dollars. Needed for cash. For two $150 tickets send 300.
donorNameYesWho gave.
eventNameNoEvent or campaign, for example 'Spring Gala'.
signerNameNoWho signs for the charity.
includeDocxNotrue also returns the receipt as a Word file in result.docx (filename, contentType, base64).
signerTitleNoSigner's title.
donorAddressNoDonor address (optional).
exemptionTypeNoSection of the Internal Revenue Code that exempts the charity. Default 501(c)(3).
receiptNumberNoYour receipt number.
contributionTypeNocash (default) states the amount; noncash describes the property and states no value, as the IRS requires.
goodsAndServicesNoWhat the donor received in return (dinner, ticket, merchandise). Leave out when nothing was given. The deductible amount is the amount paid less their value.
organizationNameYesThe charity's legal name.
organizationAddressNoCharity address, printed under the name.
propertyDescriptionNoNon-cash: what was given. Needed for noncash. Do not put a value on it.
intangibleReligiousBenefitsOnlyNotrue when the only benefit was intangible religious benefits (for a religious organization); prints that statement instead of a goods and services list.

TDQS

D1.9/5.0
Behavior1/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered, but the description adds nothing beyond them — no mention that it returns a generated receipt document, that includeDocx yields a Word file, or that validation failures produce a 422. For a 17-parameter document generator with no output schema, this is a total gap.

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?

It is a single short, front-loaded phrase with no filler, so it isn't bloated — but the brevity comes from omission rather than economy. There is no structure to speak of.

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

Completeness1/5

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

With 17 parameters, conditional requirements (amount for cash, propertyDescription for noncash), no output schema, and a legally sensitive output, the description supplies none of the context an agent needs. Everything must be reconstructed from the schema alone.

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 per-parameter text is unusually rich (EIN format, cash vs. noncash semantics, goods-and-services deduction math), so the schema carries semantics entirely. The description adds no parameter information; baseline 3 applies.

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

Purpose2/5

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

"Donation receipt maker from freedailypro" only restates the tool name plus a vendor tag; it never says it generates an IRS-compliant donation receipt from the supplied fields. Nothing distinguishes it from the many other document-generating siblings (business_receipt, business_bill_of_sale_draft) or indicates the output format.

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 this tool, what prerequisites exist (EIN, date of gift), or which sibling to pick instead. The phrase "from freedailypro" is a brand note, not usage guidance.

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

business_eviction_notice_draftD
Read-onlyIdempotent
Inspect

Eviction notice draft

NameRequiredDescriptionDefault
dateYes
daysYes
tenantYes
addressYes
landlordYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower, but the description adds nothing beyond them – no indication of what output the draft takes, whether legal requirements vary by jurisdiction, or how the 'days' parameter influences the notice. The only value is that the name implies a generation operation, consistent with 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.

Conciseness2/5

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

The description is three words long, but this is under-specification rather than conciseness – there is no front-loaded purpose statement, no scope, and nothing for the agent to act on beyond the name.

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

Completeness1/5

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

For a tool with 5 required, entirely undocumented parameters and no output schema, the description should explain at minimum what a draft is (text? file?) and what the inputs mean. It is completely inadequate for that complexity.

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

Parameters1/5

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

All 5 parameters (landlord, tenant, address, date, days) are required and schema description coverage is 0%, so the description carries the full burden. It mentions no parameters and gives no hint about date format, what 'days' means (notice period?), or how the fields are used in the draft.

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

Purpose2/5

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

The description "Eviction notice draft" merely restates the tool name and title as a noun phrase, with no verb explaining what the tool actually does (generate? generate from a template? return a PDF?). An agent can guess it produces an eviction notice, but cannot distinguish its behavior from siblings like business_lease_draft or business_nda_draft beyond the document 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?

There is no guidance at all on when to use this tool, when not to, prerequisites (e.g., jurisdiction, notice period rules), or which sibling to pick for related documents. Usage is only implied by the tool name.

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

business_expensesC
Read-onlyIdempotent
Inspect

Expense tracker

NameRequiredDescriptionDefault
itemsYesThe expenses to total. A refund is a negative amount.
mergeCategoriesNotrue treats categories that differ only in case or surrounding spaces as one. Default false (exactly as sent).

TDQS

C2.2/5.0
Behavior2/5

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

Annotations fully declare the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is low. Even so, the description adds nothing beyond the name — it doesn't mention that the tool is a pure computation over caller-supplied data with no side effects, nor how category merging affects the totals.

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

Conciseness2/5

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

Two words is not conciseness — it's under-specification. There is no front-loaded statement of purpose or scope, and nothing in the description earns or lacks a place because nothing was written.

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 tool taking a nested array of expense records with aggregation semantics and no output schema, the description should at least state that it computes totals and what triggers the byMonth breakdown. All of that is left to the schema, leaving an agent with no narrative confirmation of what the call produces.

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 items, the date-triggered byMonth totals, negative-amount refunds, and mergeCategories semantics. The description adds no parameter meaning of its own; baseline 3 applies.

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

Purpose2/5

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

"Expense tracker" restates the tool name rather than stating a specific verb and resource. It doesn't say the tool totals a list of expenses, nor does it distinguish it from close siblings like business_receipt or business_invoice_totals.

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 when-to-use, when-not-to-use, or alternative-tool guidance is given. The only hints about behavior (date-triggered monthly totals, negative amounts as refunds, category merging) live entirely in the schema, not the description.

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

business_government_formsD
Read-onlyIdempotent
Inspect

Government forms hub

NameRequiredDescriptionDefault
regionNo

TDQS

D1.5/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that – no information about what the tool returns, whether the region changes available content, or what the "hub" actually contains. No contradiction with annotations, but zero added value.

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

Conciseness2/5

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

Three words is concise but the opposite of informative – this is under-specification rather than efficiency. There is no front-loaded statement of action or scope because there is no substantive content at all.

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

Completeness1/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 is the only place an agent could learn what forms are produced, in what format, or how region affects output, and it provides none of that. For a hub-style tool with a selector parameter, this leaves the agent unable to predict the response.

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

Parameters2/5

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

Schema description coverage is 0% and the description never mentions the single `region` parameter. The enum values (US, IN, UK, other) are somewhat self-explanatory, but the description offers no explanation of what region selects or how it changes results, so it fails to compensate for the coverage gap.

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

Purpose2/5

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

"Government forms hub" essentially restates the tool name (business_government_forms) as a label rather than stating what the tool does. There is no verb and no indication of what action the agent is performing, so an agent cannot tell from the description what this produces versus a document-drafting sibling like business_nda_draft.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no exclusions, and no reference to any alternative among the 25 sibling tools. The agent is left to guess entirely from the name whether this lists forms, generates them, or fetches templates.

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

business_invention_disclosureD
Read-onlyIdempotent
Inspect

Invention disclosure worksheet

NameRequiredDescriptionDefault
dateNo
titleYes
problemYes
inventorYes
solutionYes

TDQS

D1.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say whether a document is produced, whether the worksheet is stored or ephemeral, how required vs optional fields are handled, or what the result looks like. No contradiction with the read-only annotations, just silence.

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

Conciseness2/5

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

Brevity here is under-specification rather than conciseness: three words carry no actionable information and nothing is front-loaded beyond a restatement of the name.

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

Completeness1/5

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

A tool with 5 parameters, 4 of them required, zero schema descriptions, and no output schema needs a real description to be callable correctly. This one provides nothing about inputs, output artifact, or expected context, leaving the agent to guess.

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

Parameters2/5

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

Schema description coverage is 0% (properties carry only types and minLength), so the description must compensate and does not. It never mentions title, inventor, problem, solution, or date, nor the formatting or length expected for each field.

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

Purpose2/5

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

The description is a three-word noun phrase, "Invention disclosure worksheet", that essentially restates the tool name and title. It never states a verb (generate? draft? validate?) or what the agent gets back, so the purpose can only be guessed by analogy with siblings like business_nda_draft.

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

Usage Guidelines1/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 this tool, no prerequisites, and no mention of alternative or related tools among the 25 business_* siblings. The agent has to infer everything from the name alone.

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

business_invoice_totalsD
Read-onlyIdempotent
Inspect

Invoice totals

NameRequiredDescriptionDefault
linesYes
notesNoNotes printed at the bottom of the document.
termsNoPayment terms line, for example 'Net 30. Pay by bank transfer.'
taxPctNo
dueDateNoYYYY-MM-DD, a real date on or after invoiceDate (422 otherwise).
clientNameNoWho the invoice is for. Needed with businessName for the document.
discountPctNo
includeDocxNotrue also returns the invoice as a Word file in result.docx (filename, contentType, base64). Needs businessName and clientName.
invoiceDateNoYYYY-MM-DD, a real date (422 otherwise).
businessNameNoYour business name. Sending businessName and clientName also returns the invoice as a document: result.document, result.text and, with includeDocx, a Word file.
invoiceNumberNoInvoice number printed on the document.
currencySymbolNoSymbol printed before amounts in the document. Default $. The totals themselves are plain numbers.

TDQS

D1.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. However, the description adds nothing at all — notably it fails to disclose that supplying businessName and clientName triggers generation of a rendered document and that includeDocx produces a Word file, which is behavior an agent cannot infer from 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.

Conciseness2/5

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

Two words are not concise — they are under-specified. There is no front-loaded statement of the operation, the inputs, or the output shape.

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

Completeness1/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 an optional document/Word-file generation side effect and no output schema, a two-word description leaves the agent without any of the context needed to call it correctly.

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

Parameters2/5

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

Schema coverage is 75% and the schema itself documents most fields richly, so the baseline would be near 3. The description supplies zero parameter meaning, leaving the surprising conditional relationship between businessName/clientName/includeDocx and document output entirely to the schema's prose.

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

Purpose2/5

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

'Invoice totals' merely restates the tool name; it does not say it computes invoice totals from a list of line items, nor does it distinguish the tool from siblings like business_receipt or calculate_sales_tax.

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

Usage Guidelines1/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 this tool, no alternatives named, and no mention of the preconditions (minItems:1 lines array) that define the use case.

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

business_lease_draftC
Read-onlyIdempotent
Inspect

Lease agreement draft

NameRequiredDescriptionDefault
endYes
rentYes
startYes
tenantYes
addressYes
landlordYes

TDQS

C2.4/5.0
Behavior1/5

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

The description adds no unique behavioral information beyond repeating the title and function. All behavioral constraints (read-only, idempotent) are already present in 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.

Conciseness5/5

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

The description is optimally concise, using a short, direct phrase that identifies the tool's function without filler.

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

Completeness1/5

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

Given that the schema description coverage is 0% and the tool requires 6 distinct input parameters, the description is critically incomplete. It offers no context on what the parameters mean or what the output artifact represents.

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

Parameters1/5

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

With 0% schema coverage, the description must define the semantics of the 6 required parameters (landlord, tenant, address, etc.). The description provides no semantic meaning or context for these critical inputs.

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 (draft) and the resource type (Lease agreement). This is effective for identification.

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 other sibling tools in the business document library. It lacks contextual boundaries or prerequisites.

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

business_marketplace_feeC
Read-onlyIdempotent
Inspect

Marketplace fee calculator

NameRequiredDescriptionDefault
costNoWhat the item costs you. With it the response adds a 'profit' object (profit if kept, returns, margin, ROI, break-even price).
priceYes
adCostNoAd or acquisition cost per order.
feePctNoMarketplace fee in percent. Required unless compare is sent.
compareNo2 to 4 of Amazon, Etsy, eBay, Walmart, Mercari, TikTok Shop, Shopify. Needs cost. Returns 'comparison': every fee line, payout, profit, margin, ROI and break-even price per marketplace, with the date each preset's rates were verified.
fixedFeeNo
returnPctNoShare of orders returned, in percent. Default 0 (the website form pre-fills 5).
fulfilmentNoFulfilment fee per unit, e.g. Amazon FBA (in compare it is charged to Amazon only).
paymentPctNoSeparate payment-processing fee in percent (0 where the marketplace fee includes it).
paymentFixedNo
shippingCostNoWhat you pay the carrier to send one order. Default 0 (the website form pre-fills 4.50).
feeOnShippingNoWhether the percentage fee also applies to shipping charged. Default true.
offsiteAdsPctNoCompare only: Etsy Offsite Ads fee on the Etsy column, 15% or 12% (capped at $100 per order). Default 0.
returnPostageNoPostage lost on a return. Default 0 (the website form pre-fills 4.50).
unsellablePctNo
ordersPerMonthNoAdds the expected profit for a month of that many orders.
shippingChargedNoShipping the buyer pays on top of price.

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare a safe, read-only, idempotent, closed-world computation, so the safety profile is covered. The description adds nothing on top: it does not disclose that compare requires a cost, that feePct is required unless compare is supplied, that preset marketplace rates carry verification dates, or what the response shape is.

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?

Three words plus a noun phrase — there is no bloat or burying of key information. The brevity is a symptom of under-specification rather than tight editing, but the dimension rewards zero waste and the phrase is front-loaded.

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 17-parameter tool with conditional requirements (feePct required unless compare; compare requires cost) and no output schema, the description covers none of it. An agent calling with only the required price could hit a validation failure it had no way to anticipate from 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 76%, comfortably in the high band, so the schema already carries most parameter meaning (cost's profit object, compare's 2-4 marketplace strings, default values for returnPct/shippingCost/feeOnShipping). The description contributes no parameter guidance at all, which is acceptable only because the schema does the work.

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

Purpose2/5

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

"Marketplace fee calculator" restates the tool name (business_marketplace_fee) and title almost verbatim, adding no verb/resource specificity. It also fails to distinguish this tool from siblings such as business_product_margin, business_profit_margin and business_break_even, which plausibly overlap in subject matter.

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 when-to-use guidance, no mention of the two distinct modes (a single fee via feePct vs. a multi-marketplace comparison via compare), and no pointer to the neighbouring margin/profit calculators. Nothing steers the agent between this tool and its siblings.

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

business_nda_draftD
Read-onlyIdempotent
Inspect

NDA draft

NameRequiredDescriptionDefault
purposeYes
termYearsNo
receivingPartyYes
disclosingPartyYes

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing about what a "draft" output is, whether it is returned as text or a file, or what the tool does with the parties' names.

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

Conciseness2/5

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

Two words with no structure or front-loaded detail; this is under-specification rather than conciseness. Nothing in the text earns its place because nothing informative is present.

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

Completeness1/5

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

A four-parameter document-generation tool with zero schema coverage and no output schema requires the description to explain inputs and the nature of the returned draft. None of that is present.

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

Parameters1/5

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

Schema description coverage is 0% across four parameters, so the description must compensate and it does not: disclosingParty, receivingParty, purpose, and termYears are never explained (e.g., expected formats, whether termYears defaults to perpetual).

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

Purpose2/5

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

"NDA draft" essentially restates the tool name and title, giving no verb and no scope. It signals only that the tool relates to non-disclosure agreements, leaving whether it generates, validates, or stores a draft entirely to inference.

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

Usage Guidelines1/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 this tool, no preconditions, and no mention of alternatives among the many sibling draft tools (lease, offer letter, promissory note, etc.).

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

business_offer_letter_draftC
Read-onlyIdempotent
Inspect

Employment offer letter draft

NameRequiredDescriptionDefault
stateNoGoverning-law state or country. The governing-law section is left out when this is not sent.
titleYesThe job title.
salaryNoPay as a number or text: 92000, "$92,000", "92,000 per year", "6,000/month", "45 per hour". Must be above 0 (422 otherwise). Required, except for an unpaid internship. Words after the number set the period unless salaryPeriod is sent.
companyYesThe employer's name.
benefitsNoPermanent roles: the benefits paragraph. A standard sentence is used when left out.
candidateYesFull name of the person receiving the offer.
equipmentNoWhose equipment is used. Default company.
startDateYesFirst day of work as a real calendar date, YYYY-MM-DD (422 otherwise). A date in the past is allowed and returned as a warning.
mentorNameNoInternships: the mentor named in the reporting section.
noticeDaysNoWith termination notice: days of written notice. Default 30.
signerNameNo
includeDocxNotrue also returns the letter as a Word file in result.docx (filename, contentType, base64).
managerNameNo
signerTitleNo
terminationNoDefault at-will.
durationUnitNoDefault months.
managerTitleNo
positionTypeNoDefault permanent.
salaryPeriodNoWhat the pay is per. Default year, or the period named in the salary text.
contingenciesNoWhich conditions the offer depends on. Defaults: criminalCheck and workEligibility true, the others false.
companyTaglineNo
durationNumberNoInternships: how long it lasts, in durationUnit. Default 3.
employmentTypeNoFull-time (default), Part-time, Contract.
learningPointsNoInternships: what the intern will gain, one item each. A standard list is used when left out.
paidInternshipNoInternships: true when a stipend is paid (then salary is the stipend). Default false: an unpaid-internship clause is written.
responseDeadlineNoLast day to accept, YYYY-MM-DD, on or before startDate (422 otherwise).

TDQS

C2.2/5.0
Behavior2/5

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

Annotations already cover the safety profile (readOnly, idempotent, closed-world, non-destructive), so the bar is lower, but the description adds nothing at all. It never mentions that the tool generates letter content, that includeDocx produces a Word file in result.docx, that past dates or low salary yield warnings/422s, or that defaults are filled in when fields are omitted.

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

Conciseness2/5

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

Four words is not conciseness but under-specification; there is no front-loaded statement of what the tool produces. Every necessary sentence is missing rather than every unnecessary sentence removed.

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 26-parameter tool with a nested contingencies object, five enums, internship/permanent branching, and no output schema, the description leaves out what the caller gets back (letter body, warnings, optional docx) and how the many optional fields change the output. The schema covers parameters, but the tool's core behavior and return shape are undocumented.

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 81% and the property descriptions are unusually rich (salary formats, 422 conditions, internship vs permanent branches, defaults), so the baseline of 3 applies. The description itself contributes zero parameter meaning, leaving the schema to carry the whole load.

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

Purpose2/5

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

"Employment offer letter draft" only restates the tool name and title, adding no verb or scope beyond what the identifier already says. It does not distinguish this from near siblings such as business_cover_letter, business_nda_draft, or business_contract_pack, nor does it say whether it generates text, a file, or a structured object.

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 when-to-use, when-not-to-use, or alternative-tool guidance of any kind. An agent must infer from the name alone that this is the letter-generation tool and not, say, a document analysis or storage tool.

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

business_pay_stubD
Read-onlyIdempotent
Inspect

Pay stub generator

NameRequiredDescriptionDefault
rateYesHourly rate, or the salary for this period
bonusNo
hoursNo
otherNo
ssPctNo
fedPctNo
healthNo
medPctNo
retireNo
payDateYes
payTypeYes
employeeYes
employerYes
statePctNo
ytdGrossNo
periodEndYes
employeeIdNo
periodStartYes
otMultiplierNo
overtimeHoursNo
employerAddressNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. But the description adds no behavioral context beyond that: it doesn't say how taxes/deductions (fedPct, statePct, ssPct, medPct) are applied, whether gross is computed from rate×hours, or what the caller receives back given there is no output schema.

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

Conciseness2/5

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

It is short, but shortness here is under-specification rather than conciseness. There is no front-loaded statement of purpose or scope that an agent could act on.

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

Completeness1/5

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

A 21-parameter document-generation tool with 5% schema coverage and no output schema gets a three-word description that explains none of its inputs or its return value. This is far below what an agent needs to call it correctly.

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

Parameters1/5

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

Schema description coverage is only 5% across 21 parameters, so the description carries nearly the full burden and delivers nothing. Optional fields like bonus, other, health, retire, ytdGross, otMultiplier, employerAddress, and employeeId are completely undocumented in both places.

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

Purpose2/5

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

"Pay stub generator" restates the tool name and title without a specific verb, output format, or distinguishing scope. It does not say whether it produces a PDF, HTML, structured JSON, or plain text, which is the key ambiguity for a generator tool.

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

Usage Guidelines1/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives among the many sibling business_* document tools. An agent has no basis for choosing this over, say, business_invoice_totals except the name.

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

business_poa_draftD
Read-onlyIdempotent
Inspect

Power of attorney draft

NameRequiredDescriptionDefault
agentYes
powersYes
principalYes

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. However, the description adds nothing about what 'draft' actually does—whether it returns template text, renders a document, requires legal review, or has side effects—so it contributes no behavioral context 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.

Conciseness2/5

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

The description is only three words, but it is under-specified rather than concise. It lacks front-loaded actionable information and does not earn its place by conveying anything beyond the title.

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

Completeness1/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, no output schema, and no parameter descriptions, the definition leaves out purpose, usage guidance, parameter meaning, and return behavior. An agent would have to guess how to invoke it correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three required parameters: principal, agent, or powers. It provides no meaning, format expectations, or legal-role clarifications that would help an agent populate these fields correctly.

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

Purpose2/5

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

The description repeats the tool name almost verbatim ('Power of attorney draft') and contains no verb indicating whether it generates, validates, retrieves, or formats a document. It identifies the resource but not the action, leaving the agent to infer the operation from the tool name alone.

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

Usage Guidelines1/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 this tool, when not to use it, or which sibling business_*_draft tool is the right alternative. The agent receives no context about prerequisites, expected inputs, or distinguishing use cases.

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

business_product_marginC
Read-onlyIdempotent
Inspect

Product margin calculator

NameRequiredDescriptionDefault
costYes
priceYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that—no statement of the formula used, whether the result is a percentage or absolute amount, or how cost/price units are treated.

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

Conciseness2/5

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

Short and front-loaded, but it is under-specification rather than conciseness—the single phrase earns no place beyond echoing the name.

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

Completeness2/5

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

No output schema exists, yet the description says nothing about the return value (margin percent vs. markup vs. absolute profit). For a two-required-parameter computation tool, this leaves the agent unable to predict the result or verify the call.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden and fails: it never mentions cost or price, their units/currency, or that both are required. Parameter names are suggestive but insufficient for a financial calculation where units matter.

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

Purpose2/5

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

"Product margin calculator" essentially restates the tool name and title without a specific verb or scope. It gives no basis for distinguishing this from the sibling business_profit_margin, which an agent would need to choose correctly.

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 when-to-use guidance, no preconditions, and no mention of the near-identical sibling business_profit_margin. The agent must infer the use case entirely from the name.

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

business_profit_marginD
Read-onlyIdempotent
Inspect

Profit margin calculator

NameRequiredDescriptionDefault
costNo
priceNo
profitNo
shippingNo
marginPctNo
markupPctNo
acquisitionNo

TDQS

D1.6/5.0
Behavior2/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context about how the calculation works, which parameter combinations are valid, whether inputs are mutually exclusive, or what the tool returns.

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

Conciseness2/5

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

The description is only three words, which is concise but severely under-specified rather than efficiently structured. It does not front-load any useful invocation or scoping information.

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

Completeness1/5

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

For a tool with seven undocumented optional parameters and no output schema, the description is completely inadequate. It does not explain valid input combinations, the calculation logic, expected outputs, or how to choose between this and closely related sibling tools.

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

Parameters1/5

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

The schema has seven parameters with 0% description coverage, including ambiguous fields like profit, marginPct, markupPct, and acquisition. The description provides no information about what these parameters mean or how they relate, so it completely fails to compensate for the missing schema documentation.

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

Purpose2/5

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

The description 'Profit margin calculator' essentially restates the tool name business_profit_margin and adds no distinguishing scope. It does not differentiate this from the very similar sibling business_product_margin or clarify what kind of profit-margin calculation it performs.

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

Usage Guidelines1/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 this tool, when not to use it, or which alternative sibling tools such as business_product_margin or business_break_even should be preferred. The agent is left to infer usage entirely from the name.

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

business_promissory_note_draftC
Read-onlyIdempotent
Inspect

Promissory note draft

NameRequiredDescriptionDefault
dueYes
amountYes
lenderYes
borrowerYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that – it does not say what the generated draft contains, whether jurisdiction/interest rate/terms are fixed, or what the caller receives back. With annotations carrying the burden, this is a low-value addition.

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

Conciseness2/5

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

Three words that are not front-loaded because there is nothing to front-load; this is under-specification, not conciseness. Every useful detail is absent rather than trimmed.

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 tool with four required parameters, no output schema, and zero schema descriptions, the definition leaves the agent unable to predict the produced document or the expected input formats. Annotations cover safety but nothing about behavior or output.

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

Parameters2/5

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

Schema description coverage is 0% with four required parameters, so the description must compensate and does not. 'amount' and 'due' are bare strings with only minLength 1 – the description gives no currency assumption, date format, or whether lender/borrower are names or entities, all of which an agent must guess.

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

Purpose2/5

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

The description 'Promissory note draft' merely restates the tool name and title with no verb, no statement of what is produced, and no scope. It does not distinguish this from the many other '*_draft' siblings such as business_nda_draft, business_lease_draft, or business_offer_letter_draft beyond the noun in the name.

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 this versus the other draft-generating siblings, and no stated prerequisites. An agent must infer usage entirely 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.

business_proposalD
Read-onlyIdempotent
Inspect

Proposal builder

NameRequiredDescriptionDefault
youYes
dateYes
scopeYesScope of work, one item per line
termsNo
titleNo
clientYes
pricesYesPrice lines with the amount at the end, for example Design: $1,200
summaryYes
timelineNo
validDaysNo
outOfScopeNo
deliverablesNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds no behavioral context beyond the title, such as how the proposal is generated or what data is required.

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

Conciseness2/5

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

The description is only two words, so it is concise, but it is under-specified rather than optimally structured. It does not front-load useful constraints or help an agent decide how to invoke the tool.

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

Completeness1/5

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

This is a complex tool with 12 parameters (6 required), no output schema, and very low schema coverage. A two-word description is wholly inadequate for an agent to understand what inputs are needed or what the tool produces.

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

Parameters1/5

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

Schema description coverage is very low at 17%: only scope and prices have descriptions in the schema. With 12 parameters and 6 required, the description supplies no additional meaning, format hints, or required-field guidance.

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

Purpose2/5

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

"Proposal builder" is essentially a restatement of the tool name and title, not a specific verb+resource statement. It does not clarify what the tool returns or how it differs from sibling document tools like contract_pack or offer_letter_draft.

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 when-to-use guidance, prerequisites, or alternatives. An agent has to infer everything from the tool name alone.

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

business_receiptD
Read-onlyIdempotent
Inspect

Receipt maker

NameRequiredDescriptionDefault
dateNo
linesYes
taxPctNo
merchantYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare this as readOnly, idempotent, non-destructive, and closed-world, but the description adds no behavioral context such as what is computed, constraints on inputs, or what kind of receipt is produced. It does not contradict the annotations, but it contributes essentially nothing beyond them.

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

Conciseness2/5

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

The two-word description is concise but under-specified to the point of being unhelpful. Brevity here reflects missing information rather than disciplined structure.

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

Completeness1/5

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

With four parameters, no output schema, and only safety-related annotations, the description is far too thin to explain what the tool does or how to call it correctly. It leaves both parameter meaning and expected result behavior unexplained.

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

Parameters1/5

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

Schema description coverage is 0% across four parameters, including required merchant and lines. The description says nothing about merchant, lines, date, or taxPct semantics, so it fails to compensate for the undocumented schema.

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

Purpose2/5

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

"Receipt maker" essentially restates the tool name and title without adding a specific verb, scope, output format, or distinguishing details from sibling business tools. It is a tautological description rather than a meaningful purpose statement.

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, when not to use it, or which sibling tool is the relevant alternative. An agent must infer usage entirely from the name.

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

business_rental_applicationD
Read-onlyIdempotent
Inspect

Rental application maker

NameRequiredDescriptionDefault
feeNo
petsNo
rentNo
moveInNo
depositNo
landlordYes
propertyYes

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data and the description is not obliged to repeat it. However, the description adds nothing beyond that — not what the tool emits (form text? filled document?), nor what it does with the two required inputs. A single clause on output would have earned more.

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

Conciseness2/5

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

Three words is not conciseness, it is under-specification — there is no front-loaded verb-plus-object-plus-scope statement. Nothing in the fragment is wasted, but nothing earns its place either.

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

Completeness1/5

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

With 7 undocumented parameters, no output schema, and a generation-style tool whose output format is entirely unknown, this description leaves an agent unable to call the tool correctly. It should state what document is produced and what each input field means.

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

Parameters1/5

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

Schema description coverage is 0% across 7 parameters (property, landlord, rent, deposit, fee, moveIn, pets), and the description explains none of them. It does not clarify formats for rent/deposit/fee strings or the moveIn date. This is a significant gap the description fully fails to compensate for.

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

Purpose2/5

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

"Rental application maker" restates the tool name and annotation title almost verbatim, adding only the word "maker." An agent can infer it produces a rental application document, but nothing distinguishes it from siblings like business_lease_draft or business_eviction_notice_draft beyond the noun.

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

Usage Guidelines1/5

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

The description gives no when-to-use guidance, no prerequisites, and names no alternative. There is nothing telling an agent when to pick this over business_lease_draft or business_contract_pack.

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

business_resume_job_matchC
Read-onlyIdempotent
Inspect

Resume and job post keyword match

NameRequiredDescriptionDefault
resumeYesThe resume as plain text (up to 100,000 characters).
jobPostYesThe job posting as plain text (up to 100,000 characters). Paste the whole posting: the keywords come from how often it repeats words and two-word phrases.
maxKeywordsNoHow many posting keywords to check, 1 to 100. Default 40.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds nothing beyond the name: it does not say whether the tool returns a numeric match score, matched/missing keyword lists, or both, nor how pairs of words are handled. The only behavioral hint (keyword frequency of repeated words and two-word phrases) lives 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.

Conciseness3/5

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

It is short and front-loaded, but in a way that reads as under-specification rather than economy — a six-word noun phrase for a three-parameter tool. Nothing is wasted, but very little is delivered either.

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?

There is no output schema, so the description bears the burden of explaining the return value, and it does not: an agent cannot tell whether it receives a percentage, a keyword table, or a gap analysis. For a matching/analysis tool with an unspecified result shape, that is a material 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% — resume, jobPost and maxKeywords each carry clear descriptions including lengths, default 40 and the 1-100 range. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose3/5

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

The fragment 'Resume and job post keyword match' identifies the two resources and the general operation, but omits a verb and never says what a 'match' produces (a score, a keyword overlap list, missing keywords). An agent can guess the domain but not the output, and nothing distinguishes it from siblings like keyword_density or text_similarity.

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 when-to-use guidance, no prerequisites, and no mention of alternatives. With sibling tools such as keyword_density, text_similarity, business_resume_outline and business_blind_cv in the same family, the agent is left to infer which one fits a resume-vs-posting task.

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

business_resume_outlineC
Read-onlyIdempotent
Inspect

Resume outline builder

NameRequiredDescriptionDefault
nameYesYour name.
titleYesThe job title you are applying for or hold.
skillsNo
contactNoContact lines, one per line, shown under your name.
summaryNoYour own summary. When left out a one-line draft is written and flagged (summaryIsDraft).
educationNo
experienceNoJobs, newest first.
includeDocxNotrue also returns the outline as a Word file in result.docx (filename, contentType, base64).

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing on top of that: it does not say that missing summary/skills/achievements get auto-drafted prompts, nor that the response contains a structured outline (and optionally a DOCX).

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

Conciseness2/5

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

It is short, but shortness here reflects under-specification rather than economy — a four-word fragment with no front-loaded verb, scope, or output statement. Nothing in it earns its place beyond what the tool name already conveys.

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 an 8-parameter generative tool with no output schema, so the description must explain what comes back (an outline object, plus result.docx when includeDocx is true) and how defaults behave (summaryIsDraft flagging, placeholder prompts for missing achievements). None of that is present.

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

Parameters2/5

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

Schema description coverage is 75% and the schema itself documents name, title, contact, summary, years, achievements and includeDocx in detail. With coverage just under the 80% baseline, the description is expected to compensate but contributes zero parameter meaning; "builder" explains none of the 8 inputs.

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

Purpose2/5

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

"Resume outline builder" merely restates the tool name in slightly different words; it never states what action is performed (generate? validate? format?) or what the output artifact is. It also fails to distinguish this from close siblings such as business_blind_cv or business_cover_letter, which an agent could easily confuse with it.

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 when-to-use guidance, no prerequisites, and no mention of the alternative resume-related siblings (business_blind_cv, business_cover_letter). An agent must guess from the name alone whether this is the right tool for a resume task.

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

business_shipping_estimateD
Read-onlyIdempotent
Inspect

Shipping cost estimator

NameRequiredDescriptionDefault
baseNo
weightKgYes
ratePerKgYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: no statement that the result is a pure arithmetic estimate, no mention of currency or units, and no indication of what the returned value looks like or whether rounding applies.

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

Conciseness2/5

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

Three words is concise in the trivial sense, but the rubric penalizes under-specification. There is no front-loaded scope, units, or formula, so brevity here is a deficit rather than an efficiency.

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

Completeness1/5

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

For a 3-parameter calculation tool with no parameter descriptions, no output schema, and a required-parameter structure that hides the formula, the description is wholly inadequate. An agent could call it with the right types but cannot know what the numbers mean or how to interpret the result.

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

Parameters1/5

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

Schema description coverage is 0% across three parameters, and the description supplies no compensating meaning. Critically, it never explains how base, weightKg and ratePerKg combine into the estimate (e.g. base + weightKg * ratePerKg), which is precisely the information an agent cannot infer from names and types alone.

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

Purpose2/5

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

"Shipping cost estimator" just rephrases the tool name (business_shipping_estimate) without adding detail. It tells the agent nothing about what kind of shipment, carrier, region, or cost model is involved, and nothing distinguishes it from the many other numeric business calculators in the sibling list.

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 statement of when to use this instead of alternatives. The sibling set contains overlapping calculators (business_break_even, business_marketplace_fee, business_profit_margin), and the description offers zero routing guidance between them.

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

business_startup_namesC
Read-onlyIdempotent
Inspect

Startup name generator

NameRequiredDescriptionDefault
limitNo
seedsYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond the name: it does not say whether output is a list, how many names are returned, whether results are deterministic given seeds, or how the limit interacts with generation.

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

Conciseness2/5

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

Three words is not conciseness here but under-specification; there is no front-loaded intent statement, no scope, and nothing for the agent to anchor on beyond the title repeated in the name.

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?

There is no output schema, so the description carried the burden of explaining the return shape but says nothing about it. For a two-parameter generator with a required 'seeds' array and a numeric 'limit', the definition omits everything an agent needs to call it correctly.

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

Parameters2/5

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

Schema description coverage is 0%: neither 'seeds' (a required array of strings) nor 'limit' (a number with minimum 0) is documented anywhere. The description could have explained that seeds drive generation and that limit caps the number of names, but mentions neither.

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

Purpose3/5

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

'Startup name generator' names a recognizable resource (startup names) and implies the action (generate), so an agent can guess the intent. However, it is a bare noun phrase with no verb, no scope, and no attempt to distinguish it from the many document/calculator siblings in the business_* family.

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 when-to-use, when-not-to-use, or prerequisite information is given. The description does not mention that it requires seeds, nor how it relates to alternatives, leaving selection entirely to the tool name.

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

calculate_ageC
Read-onlyIdempotent
Inspect

Age calculator — years/months/days between dates

NameRequiredDescriptionDefault
endDateNo
startDateYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety and determinism are covered. The description adds the useful detail that results are expressed in years/months/days, but says nothing about default end date, accepted date formats, or timezone 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?

A single em-dash-joined line with the output units front-loaded after the resource name. No waste, though the compression is partly what leaves the parameter gaps.

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 two-parameter tool with no output schema and zero schema descriptions, the description should at minimum pin down the optional endDate default and the date string format. Neither appears, so an agent could easily call it with an unsupported format or a missing-but-expected end date.

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

Parameters2/5

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

Schema description coverage is 0% for both parameters, so the description must carry the semantics and does not: it never says endDate is optional, what happens if it is omitted, what string format dates take, or whether order matters. 'Between dates' only hints that two inputs are involved.

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?

'Age calculator' plus 'years/months/days between dates' specifies both the operation and the unit granularity of the result, so an agent knows this computes a duration rather than a single number. It stops short of distinguishing itself from date-range siblings such as converters_job_experience or converters_countdown.

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 statement of when to pick this over the many other calendar/date calculators in the sibling list, and no guidance on when endDate should be supplied versus omitted (presumably today). Usage must be inferred entirely from the one-line description.

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

calculate_bmiD
Read-onlyIdempotent
Inspect

Bmi calculator

NameRequiredDescriptionDefault
unitNo
heightYes
weightYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing further—no mention of the formula used, output format (numeric BMI vs category label), or unit handling.

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

Conciseness2/5

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

It is short, but the brevity comes from under-specification rather than efficiency; there is no front-loaded actionable content.

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 3-parameter, 0%-coverage tool with no output schema and no annotations explaining units, the description is far too thin—an agent cannot reliably choose the unit or know what comes back.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must carry the parameter meaning—but it does not. It never explains that `height` and `weight` must be interpreted according to the `unit` enum (metric vs imperial), which is the single most error-prone input decision for this tool.

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

Purpose2/5

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

"Bmi calculator" merely restates the tool name and title, adding no verb or scope beyond what the identifier already conveys. It is a tautology rather than a specification of what is computed or returned.

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

Usage Guidelines2/5

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

No guidance on when to use this versus siblings such as calculate_bmr, calculate_ideal_weight, or estimate_body_fat. The agent must infer the distinction from names alone.

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

calculate_bmrC
Read-onlyIdempotent
Inspect

Bmr calorie calculator — Mifflin-St Jeor + TDEE

NameRequiredDescriptionDefault
sexYes
activityNo
ageYearsYes
heightCmYes
weightKgYes

TDQS

C2.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful method context by naming Mifflin-St Jeor and TDEE, but it does not explain how the optional activity parameter affects output or what the calculation returns.

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 very short and front-loaded, with no wasted clauses. But its brevity comes at the cost of under-specification for a five-parameter calculator, so it is concise without being appropriately sized for the tool's complexity.

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

Completeness1/5

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

With five parameters, 0% schema description coverage, an optional activity enum, and no output schema, the description needs to carry more explanatory burden. It names the formula but leaves required inputs, optional activity behavior, and return semantics unexplained.

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

Parameters1/5

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

Schema description coverage is 0% and there are five parameters, yet the description explains none of them. It does not clarify weightKg, heightCm, ageYears, sex, or the optional activity enum, so parameter semantics must be inferred entirely from field names and enums.

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

Purpose3/5

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

The description identifies BMR/calorie calculation and names the Mifflin-St Jeor formula plus TDEE, which is more specific than the tool name alone. However, it does not explicitly state the verb or clarify whether it returns BMR only or also TDEE, and it does not distinguish itself from sibling converters_tdee.

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 when-to-use guidance is provided. The mention of TDEE could overlap with the sibling converters_tdee, but the description never says when to use this tool instead of that one, nor does it explain required inputs or prerequisites.

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

calculate_compound_interestD
Read-onlyIdempotent
Inspect

Compound interest calculator

NameRequiredDescriptionDefault
yearsYes
frequencyNo
principalYes
startDateNoOptional start date, as YYYY-MM-DD. Adds startDate and maturityDate (the date the future value is reached). It only labels the timeline; the amounts do not change.
annualRatePercentYes

TDQS

D1.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of rounding, whether the result is a single future value, how frequency affects the calculation, or whether startDate changes amounts.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness: a single noun phrase with no front-loaded action statement or constraints. Nothing is wasted because nothing is said.

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

Completeness1/5

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

For a 5-parameter tool with no output schema and 20% schema coverage, the description leaves critical gaps: the shape of the return value, the default compounding frequency, and the unit of annualRatePercent. An agent cannot confidently construct a correct call from this.

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

Parameters2/5

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

Schema description coverage is only 20% — only startDate is documented, while principal, annualRatePercent, years, and frequency are bare. The word "compound" hints that frequency matters, but the description never states a default frequency, the valid range semantics, or what the returned number represents.

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

Purpose2/5

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

"Compound interest calculator" merely restates the tool name and title; it names no verb, no output, and no scope. It gives an agent nothing to distinguish it from the many financial siblings such as calculate_simple_interest or calculate_loan.

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

Usage Guidelines1/5

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

There is no when-to-use, when-not-to-use, or alternative routing guidance at all, despite a crowded sibling set where calculate_simple_interest is the obvious near-miss. The agent must infer the distinction entirely 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.

calculate_discountD
Read-onlyIdempotent
Inspect

Discount calculator

NameRequiredDescriptionDefault
salePriceNo
originalPriceYes
discountPercentNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered elsewhere. The description contributes nothing additional — no statement of what is computed, what happens with partial inputs, or what is returned, which is what would earn credit here.

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

Conciseness2/5

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

It is only two words, so there is no waste, but this is under-specification rather than conciseness. Nothing is front-loaded because there is nothing substantive to front-load.

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

Completeness1/5

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

For a tool with three interdependent numeric parameters, no output schema, and zero schema documentation, the description must carry the interpretive burden and carries none of it. An agent could not reliably call this tool correctly from the provided information.

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

Parameters1/5

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

Schema description coverage is 0% for three numeric parameters, and the description supplies no meaning at all. Critically, it never explains the relationship between originalPrice, salePrice, and discountPercent — an agent has no way to know whether to supply two of them to derive the third, or whether discountPercent overrides salePrice.

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

Purpose2/5

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

"Discount calculator" restates the tool name almost verbatim and adds no verb or scope beyond what the name already conveys. An agent cannot tell from this text how it differs from the dozens of sibling calculate_* tools other than by the word "discount".

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 when-to-use guidance, no prerequisites, and no reference to alternatives — even though the sibling list contains closely related tools like calculate_sales_tax, percentage, and calculate_tip that an agent must choose between. The intended usage is only implied by the tool name.

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

calculate_gpaD
Read-onlyIdempotent
Inspect

Gpa calculator

NameRequiredDescriptionDefault
scaleNo
coursesYes

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered elsewhere. The description adds nothing beyond that — no note on what the scale option changes, how percent vs 4.0 results differ, or whether unweighted/weighted output 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.

Conciseness2/5

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

Three words are technically short, but this is under-specification rather than conciseness — there is no front-loaded purpose statement or any substantive content to structure.

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

Completeness1/5

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

With two parameters including a nested course object, an enum whose meaning drives the interpretation of 'grade', and no output schema, the definition is far too thin. An agent knows nothing about the result format (numeric GPA vs percentage) or weighting behavior.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must carry the burden for the 'courses' array (objects with grade/credits) and the 'scale' enum, yet it explains neither. In particular, an agent cannot tell from the description whether 'grade' is a letter, a number on a 4.0 scale, or a percentage depending on 'scale'.

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

Purpose2/5

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

The description is 'Gpa calculator', which essentially restates the tool name and title. It implies a grade-point-average computation but names no verb, no input concept, and does nothing to distinguish it from sibling calculate_* / converters_college_cost tools.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no mention of alternatives, and no exclusions. With dozens of calculate_* and converters_* siblings, an agent gets no signal about when this tool beats converters_college_cost or converters_student_loan.

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

calculate_ideal_weightC
Read-onlyIdempotent
Inspect

Ideal weight calculator

NameRequiredDescriptionDefault
sexYes
heightCmYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond that — not the output units (kg vs lb), not which ideal-weight formula is applied, and not that results may differ across formulas.

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

Conciseness2/5

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

It is short, but brevity here is under-specification rather than conciseness — the single phrase carries no front-loaded actionable information beyond the name.

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

Completeness2/5

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

With no output schema and two required inputs, the description should at minimum state the returned unit and the calculation basis; neither appears. For a simple calculator this leaves real ambiguity about what the agent will receive.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate and does not: heightCm units (cm vs m), valid range, and the effect of the sex enum are left entirely undocumented. The parameter names are only mildly self-describing.

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

Purpose2/5

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

"Ideal weight calculator" merely restates the tool name and title; it adds no verb specification, no formula basis (Devine, Robinson, Miller?), and no scope. It does not distinguish this from closely-named siblings such as calculate_bmi or estimate_body_fat.

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 indication of when to use this tool versus the many weight/body-metric siblings, nor any prerequisites or exclusions. An agent must guess from the name alone.

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

calculate_loanB
Read-onlyIdempotent
Inspect

Loan calculator — EMI / amortizing loan, with an optional first payment date that dates the schedule preview and gives the payoff date

NameRequiredDescriptionDefault
yearsYes
principalYes
previewMonthsNo
firstPaymentDateNoOptional date the first payment is due, as YYYY-MM-DD. Adds a date to every schedulePreview row and returns firstPaymentDate, lastPaymentDate and payoffDate for the whole loan. It only labels the schedule; the amounts do not change. A payment day of 29 to 31 moves to the last day of shorter months.
annualRatePercentYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already establish that this is a read-only, idempotent, non-destructive calculation. The description adds that firstPaymentDate only labels the schedule and does not change amounts, and that short-month date handling applies, but it does not describe the full output shape or previewMonths 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 definition is a single, front-loaded sentence that identifies the calculation type before explaining the optional date behavior. It is efficient, though the dash construction packs multiple ideas into one long clause.

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 five-parameter calculator with no output schema, the description is adequate but incomplete. It covers the special date parameter, but leaves previewMonths and the main calculation parameters unexplained and does not fully describe the return values.

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

Parameters2/5

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

Schema description coverage is only 20%, with only firstPaymentDate documented. The description repeats that date's role but adds no meaning for principal, annualRatePercent, years, or previewMonths, so it fails to compensate for the low schema coverage.

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

Purpose4/5

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

The description states a specific resource and calculation type: "Loan calculator — EMI / amortizing loan." This distinguishes it from generic interest calculators, though it does not explicitly differentiate from the sibling converters_amortization 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?

It gives no guidance on when to choose this tool versus alternatives such as converters_amortization, calculate_simple_interest, or converters_student_loan. The optional firstPaymentDate behavior is explained, but that is parameter behavior rather than tool-selection guidance.

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

calculate_pregnancy_due_dateC
Read-onlyIdempotent
Inspect

Pregnancy due date calculator — Naegele rule

NameRequiredDescriptionDefault
referenceDateNo
lastMenstrualPeriodYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The one piece of genuine added context is naming the Naegele rule, which tells the agent the computation basis, but nothing is said about the output form or how referenceDate alters the result.

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 fragment with zero padding. It is terse to the point of being a label rather than a sentence, but nothing in it is wasted.

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 two-parameter tool with no output schema and no schema descriptions, the description leaves the agent guessing at input format (ISO date? string?), the role of referenceDate, and whether the result is a date or a gestational age. The annotations carry safety only, not semantics.

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

Parameters2/5

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

Schema description coverage is 0%, so the description is the only place parameter meaning could come from, and it supplies none: neither the required lastMenstrualPeriod nor the optional referenceDate is explained, and no date format is given. The mention of 'Naegele rule' only weakly implies that a last menstrual period is the anchor input.

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?

Names a specific calculation (pregnancy due date) with the underlying method (Naegele rule), which is enough to distinguish it from the many other calculate_* siblings. It falls short of 5 because it never explicitly contrasts itself with neighbours like calculate_age, relying on the topic noun to do the separating.

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 statement of when to use this versus other calculators, no prerequisites, and no guidance on what the caller must supply. An agent must infer everything 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.

calculate_sales_taxA
Read-onlyIdempotent
Inspect

Sales tax calculator with US state base-rate lookup (local rates excluded) — add or extract tax

NameRequiredDescriptionDefault
zipNoUS ZIP code (5 digits or ZIP+4). Used to find the STATE. The rate is filled in only where it is exact: 0% for DE, NH and OR, or the state rate for states with no local add-on in the Tax Foundation midyear 2026 table. For any other state no rate is guessed (a ZIP can cross city, county and district lines): the response's zip.message says so, and you send taxPercent or state. Response adds 'zip' with the state, status, message, source and the state's official lookup page where one was verified.
modeNo
itemsNoSeveral items (mode add only). Response adds 'cart' with taxable and exempt subtotals, tax, total, steps and lines.
stateNoUS state (two-letter code such as TX, or the full name; DC included). Looks up the STATE base sales tax rate only (Tax Foundation, 1 July 2026). Local city, county and district rates are not included.
amountNoAmount to tax (or the tax-inclusive amount in extract mode). Required unless items is sent.
shippingNoWith items: shipping charged.
taxPercentNoTax rate in percent. Required unless state or an exact zip is sent. Takes priority over state.
discountPctNoWith items: percentage discount on every line.
shippingTaxableNoWith items: true adds shipping to the taxable amount. Default false (rules differ by state, so you choose).

TDQS

A3.7/5.0
Behavior4/5

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

The description adds crucial functional constraints that are not entirely obvious from the annotations or schema. Specifically, stating 'local rates excluded' and detailing that it uses 'US state base-rate lookup' provides key operational context beyond the safety hints.

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 concise, well-structured single sentence that immediately identifies the tool's function, scope, and primary modes of operation.

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 complexity of sales tax laws, defining the scope (state base rate only) and the operational boundaries (add/extract) makes this definition highly functional. It is complete enough for the agent to proceed with calling the tool given the detailed input 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?

The description provides valuable context for the tool's output logic, particularly regarding the `zip` parameter. It explains that the rate is not always deterministic (e.g., 0% for DE, NH, OR) and addresses potential failure modes, adding meaning beyond the schema's structural definition.

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

Purpose4/5

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

The description clearly states the tool is a 'Sales tax calculator' performing 'add or extract tax.' It successfully defines the scope by explicitly noting that 'local rates [are] excluded,' which aids in differentiating it from a comprehensive tax calculation engine.

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 offers minimal guidance on when this tool should be preferred over alternatives. It does not advise the user on scenarios that would require a different sibling tool (e.g., a full tax converter vs. a base rate lookup).

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

calculate_simple_interestD
Read-onlyIdempotent
Inspect

Simple interest calculator

NameRequiredDescriptionDefault
yearsYes
principalYes
startDateNoOptional start date, as YYYY-MM-DD. Adds startDate and maturityDate (the date the total amount is reached). It only labels the timeline; the amounts do not change.
annualRatePercentYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no formula semantics, no note that returns are a total amount, no note about the startDate/maturityDate labeling behavior.

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

Conciseness2/5

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

Three words with no wasted text, but this is under-specification rather than conciseness. There is no front-loaded verb, scope, or outcome to anchor the agent.

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?

A four-parameter tool with no output schema and thin schema coverage needs the description to carry unit conventions and the meaning of the result. It supplies none of that, so an agent cannot reliably invoke it without inferring from parameter names alone.

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

Parameters2/5

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

Schema description coverage is only 25%, so the description is obliged to compensate and does not. It says nothing about principal, annualRatePercent (percent vs. decimal), or years, leaving the agent to guess units for three required parameters.

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

Purpose2/5

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

"Simple interest calculator" restates the tool name and annotations title almost verbatim; it names a resource but no verb or scope. It gives no basis for distinguishing this from the very similar sibling calculate_compound_interest.

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

Usage Guidelines1/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 this versus calculate_compound_interest or calculate_loan, no prerequisites, and no exclusions. The sibling list contains at least two plausible alternatives an agent cannot discriminate between.

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

calculate_sipC
Read-onlyIdempotent
Inspect

Sip calculator — systematic investment plan future value

NameRequiredDescriptionDefault
yearsYes
startDateNoOptional date of the first monthly contribution, as YYYY-MM-DD. Adds firstContributionDate, lastContributionDate and maturityDate. It only labels the plan; the amounts do not change. A day of 29 to 31 moves to the last day of shorter months.
annualRatePercentYes
monthlyInvestmentYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so mutation safety is covered. The description adds nothing beyond them on the things that actually matter for a financial calculator: contribution timing (annuity-due vs ordinary), whether annualRatePercent is compounded monthly, rounding/precision of the result, or whether the rate is nominal or effective. No output schema exists, so the description should have covered the return shape and does not.

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

Conciseness2/5

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

The line is short and front-loaded, but it is under-specified rather than concise: it is essentially a title restatement plus an acronym gloss, with no sentence that carries operational content. Brevity here costs more than it saves.

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 four-parameter financial calculator with no output schema and 25% schema coverage, the description should say what it returns (future value, invested principal, gain) and under which contribution convention. Neither is present, so the agent must guess at conventions that change the numeric result.

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

Parameters2/5

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

Schema coverage is only 25% — startDate is documented (including its label-only, non-monetary effect and the day-29-31 clamping), but the three required parameters are bare. The description supplies no meaning for monthlyInvestment, annualRatePercent, or years, and critically does not resolve the compounding convention that determines the answer.

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

Purpose3/5

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

The description expands the opaque acronym (SIP = systematic investment plan) and names the output (future value), which is genuinely informative given the name alone. But it is a noun-phrase label with no verb and no differentiation from siblings like calculate_compound_interest or calculate_loan, which compute economically similar things.

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 statement of when to use this versus any alternative, no prerequisites, and no exclusions. An agent choosing between calculate_sip, calculate_compound_interest, and calculate_loan gets no routing help from this text.

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

calculate_tipD
Read-onlyIdempotent
Inspect

Tip calculator

NameRequiredDescriptionDefault
billYes
peopleNo
tipPercentYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds zero context beyond that — no mention of rounding behavior, currency, or whether the result is a per-person or total figure.

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

Conciseness2/5

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

Two words are 'concise' only in the trivial sense; the brevity is under-specification, not efficiency. There is no front-loaded scope statement or parameter note to earn the space.

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?

A 3-parameter tool with no output schema and no parameter documentation leaves the agent guessing about the return shape (tip amount, total, or per-person total) and the meaning of `people`. Annotations cover safety but not the functional semantics that are missing here.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must carry the burden and it does not. The optional third parameter `people` is completely unexplained — an agent cannot tell whether supplying it splits the bill per person or is ignored, nor what units `tipPercent` uses (3 vs 0.03).

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

Purpose2/5

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

The description "Tip calculator" merely restates the tool name and title rather than stating a specific verb+resource with scope. An agent can infer it computes a tip, but nothing distinguishes it from siblings like calculate_discount or planning_split_bill beyond the obvious keyword.

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 this versus planning_split_bill or calculate_discount, no prerequisites, and no exclusions. The domain is intuitive enough that usage is implied, but nothing is stated.

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

calculate_water_intakeD
Read-onlyIdempotent
Inspect

Water intake calculator

NameRequiredDescriptionDefault
weightKgYes
activityLevelNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no note on what formula is used, expected units, or output shape.

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

Conciseness2/5

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

A single three-word phrase is technically short, but it is under-specification rather than conciseness. There is no front-loaded useful information beyond the tool name.

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?

There is no output schema, so the description should explain what is returned (liters? ml? adjusted for activity?), and it does not. For a two-parameter calculator with an enum modifier, this leaves the agent unable to call it confidently.

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

Parameters1/5

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

Schema description coverage is 0% for both parameters. The description provides no meaning for weightKg (units? kg vs lb? bounds?), activityLevel (how the four enum values change the result), or whether activityLevel defaults. The description does not compensate for the coverage gap at all.

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

Purpose2/5

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

The description 'Water intake calculator' merely restates the tool name and annotation title; it adds no verb, scope, or output information. It is a tautology rather than a statement of what the tool actually computes.

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

Usage Guidelines2/5

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

No guidance on when to use this versus siblings like calculate_bmi or converters_tdee, and no mention of prerequisites or inputs. An agent must infer everything from the name alone.

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

case_convertC
Read-onlyIdempotent
Inspect

Case converter — upper, lower, title, sentence, camel, pascal, snake, kebab, constant, alternating, inverse

NameRequiredDescriptionDefault
caseYes
textYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing further — it does not state that the result is returned as a new string with the input untouched, nor clarify the non-obvious modes like 'alternating' and 'inverse'.

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 compact line with the operation front-loaded and no filler. It is telegraphic rather than padded, though the space saved was not spent on the disambiguation the tool actually needs.

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 two-parameter transform with no output schema, the description should say what comes back and resolve the ambiguous modes. Neither is present, leaving an agent to guess at behavior for 'alternating' and 'inverse' and at what the 'text' input expects.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden. It lists the case values (which merely repeats the schema enum) but never explains what 'alternating', 'inverse', or 'sentence' actually do, and the required 'text' parameter is not addressed at all.

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 operation (case conversion) and enumerates the transformation modes, so an agent immediately knows what it does. It offers no differentiation from nearby siblings like fancy_text, reverse_text, or generate_slug, but the core purpose is unambiguous.

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

Usage 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 this tool versus alternatives such as fancy_text (stylized unicode) or generate_slug (URL casing), nor any mention of constraints or preconditions. The agent must infer usage entirely from the name.

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

check_grammarA
Read-onlyIdempotent
Inspect

Grammar checker — lightweight, rule-based checks (not an LLM), catches common misspellings, spacing, capitalization, and repeated-word issues

NameRequiredDescriptionDefault
textYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's real contribution is the capability disclosure: rule-based, not an LLM, and limited to four issue classes. That sets accurate expectations about shallow detection, which is genuinely useful. It stops short of describing the response shape or how limits like the 20,000-character cap are surfaced.

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 compact sentence that front-loads the tool identity and then qualifies it with the most decision-relevant caveat ('not an LLM'). No 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, single-parameter tool the description is broadly adequate, but with no output schema present it never says what comes back (a list of issues, counts, positions?), which an agent needs to chain the result. The input format and language coverage are also unstated.

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?

With a single 'text' parameter at 0% schema description coverage, the description never mentions the input at all — no guidance on expected format (plain text vs markdown), language support, or what happens near the maxLength limit. The parameter is self-evident from its name, so this is a moderate rather than severe gap.

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+resource ('grammar checker') and enumerates exactly what it catches (misspellings, spacing, capitalization, repeated words), so the agent knows the scope precisely. It also implicitly separates itself from LLM-based siblings like paraphrase_text via 'not an LLM', but 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?

No sentence states when to pick this over analyze_readability or paraphrase_text; the 'lightweight, rule-based (not an LLM)' note implies it suits fast basic checks rather than deep rewriting. Usage is inferable but not spelled out, and there are no exclusions or prerequisites.

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

color_convertC
Read-onlyIdempotent
Inspect

Color converter — hex/rgb/hsl plus hsv, cmyk, lab (D50) and oklch

NameRequiredDescriptionDefault
bNoBlue, 0-255
gNoGreen, 0-255
rNoRed, 0-255 (with clamp true, values outside are clamped)
hexNo
clampNoClamp r, g, b to 0-255 and report each change in 'clamped', instead of an error

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description usefully adds that the converter targets multiple output spaces including lab with a D50 reference white and oklch, but it does not say whether all spaces are returned at once or selected somehow, nor does it explain the 'clamped' reporting 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?

A single short, front-loaded sentence with no filler. It is terse to the point of being a fragment, but nothing is wasted.

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

Completeness2/5

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

No output schema exists, and the description never explains the return shape (which color spaces come back, in what format). Critically, the schema has zero required parameters, so an agent gets no signal that a color must be supplied via hex or r/g/b — a gap the description should have closed for a 5-parameter 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 80% — r, g, b and clamp are documented in the schema. The description adds nothing about `hex`, which is the one undocumented parameter, and its mention of 'hsl' as an input has no corresponding schema field, mildly muddying the mapping. Baseline 3 applies when the schema does the heavy lifting.

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

Purpose3/5

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

It names a specific verb+resource (color converter) and enumerates color spaces, which distinguishes it from siblings like convert_temperature or contrast_ratio. However, it never says which spaces are inputs versus outputs, so the agent cannot tell whether 'hsl/hsv/cmyk/lab/oklch' are accepted inputs (the schema has no such parameters) or produced results.

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 when-to-use guidance, no mention of related tools such as contrast_ratio or image_convert, and no prerequisites. The agent must infer that this is the tool for color-space conversion purely from the name and format list.

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

contrast_ratioC
Read-onlyIdempotent
Inspect

Contrast checker — WCAG AA/AAA

NameRequiredDescriptionDefault
backgroundYes
foregroundYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true, and destructiveHint=false, so safety behavior is covered. The description adds only the WCAG standard reference and does not explain input formats, return values, or pass/fail behavior.

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

Conciseness2/5

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

The definition is extremely short, but it is under-specified rather than efficiently concise. A few more words on input formats and result type would earn their place.

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 two-parameter utility with no output schema and 0% parameter descriptions, the description should at least clarify color formats and the nature of the result. It gives only a label and WCAG standards, leaving key invocation details missing.

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

Parameters1/5

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

Schema description coverage is 0%, so the foreground and background parameters have no documented format or meaning in the schema. The description does not compensate at all—it never mentions the parameters or whether values should be hex, RGB, or named colors.

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 phrase 'Contrast checker — WCAG AA/AAA' clearly identifies the resource and its standards, and no sibling tool checks contrast. It lacks an explicit verb and does not say exactly what it returns, but the core purpose is discernible.

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 this versus color_convert or analyze_readability. The WCAG reference hints at accessibility use cases, but no alternatives or exclusions are stated.

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

convert_currencyA
Read-onlyIdempotent
Inspect

Currency converter — converts between currencies using a periodic rate snapshot (not a live feed)

NameRequiredDescriptionDefault
toYes
fromYes
amountYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, so the bar is lower; the description nonetheless adds the valuable disclosure that rates come from a periodic snapshot rather than a live feed, which materially affects trust in results. It stops short of saying how stale the snapshot is or what precision the returned value has.

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 with the key caveat front-loaded in parentheses. Nothing wasted, nothing buried.

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, non-destructive calculation with fully annotated safety traits, the definition is nearly sufficient. With no output schema, a brief note on what the result looks like (converted amount, rounding) would close the remaining 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 0%, so the description carries the burden, and it explains none of the three parameters. Mitigating factor: the names (amount, from, to) are self-explanatory and the two currency parameters are constrained by 12-value enums, so little semantic ambiguity actually remains.

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?

Names the verb and resource precisely ('converts between currencies') and qualifies the data source ('periodic rate snapshot'). It does not reference the sibling converters_exchange_rates, which an agent might reasonably confuse with this tool, so sibling 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 parenthetical 'not a live feed' implies when this tool is inappropriate (real-time FX needs), but the agent must infer that. There is no explicit statement of when to prefer converters_exchange_rates or any other alternative, nor any prerequisite guidance.

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

converters_401kC
Read-onlyIdempotent
Inspect

401(k) projection with the 2026 IRS contribution limits

NameRequiredDescriptionDefault
ageNoYour age. Used to pick the 2026 IRS employee limit ($24,500; plus $8,000 catch-up at 50-59 and 64+, $11,250 at 60-63). Without it the base limit is used.
yearsYes
startDateNoOptional date the first contribution year starts, as YYYY-MM-DD. Adds startDate and endDate (when the projection ends). It only labels the plan; the amounts do not change.
applyIrsLimitNotrue caps annualContribution at the IRS limit for your age. Default false: the contribution is used as sent and a warning is returned if it is over the limit.
currentBalanceYes
employerMatchPctNoEmployer match as a percent of your own contribution (50 = 50 cents per dollar).
expectedReturnPctNo
annualContributionYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare it read-only, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds essentially nothing beyond restating the IRS-limit theme already detailed in the schema, and says nothing about assumptions, determinism of the projection, or the warning behavior when contributions exceed limits.

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?

A single front-loaded sentence with no waste, but it is under-specified rather than appropriately concise for an 8-parameter financial projection tool.

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

Completeness2/5

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

No output schema exists and the description does not explain what is returned (annual schedule vs. final balance), the compounding/return assumptions, or the role of employer match. For a multi-parameter financial calculator, this leaves the agent guessing.

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

Parameters2/5

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

Schema coverage is only 50%, and critical parameters — currentBalance, annualContribution, years, expectedReturnPct — have no description anywhere. The single sentence does not compensate; the IRS-limit detail it gestures at is already fully documented in the age and applyIrsLimit schema descriptions.

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

Purpose3/5

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

Names the resource (401(k)) and a topic (2026 IRS contribution limits), which distinguishes it from generic retirement or 529 siblings. But 'projection' is a noun phrase without a clear verb, and the description never says it computes a projected balance over a number of years from balance, contribution, and return assumptions.

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 when-to-use guidance, no exclusions, and no routing to alternatives such as converters_retirement, converters_contribution_limits, or converters_rmd. The only implicit signal is the 401(k) label.

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

converters_529D
Read-onlyIdempotent
Inspect

529 calculator

NameRequiredDescriptionDefault
yearsYes
currentBalanceYes
expectedReturnPctNo
monthlyContributionYes
firstContributionDateNoOptional date of the first monthly contribution, as YYYY-MM-DD. Adds firstContributionDate, lastContributionDate and targetDate (when the projected balance is reached). It only labels the plan; the amounts do not change. A day of 29 to 31 moves to the last day of shorter months.

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: no statement about what is projected, whether results are deterministic, or how the optional date labeling affects output.

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

Conciseness2/5

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

Two words with no wasted content but severe under-specification rather than conciseness. Nothing is front-loaded because nothing is stated.

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

Completeness1/5

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

A 5-parameter projection calculator with no output schema and no annotations explaining the computation is left entirely undocumented. An agent cannot know what the returned figure represents (balance at horizon? target date? schedule?) or how expectedReturnPct is applied.

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

Parameters1/5

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

Schema description coverage is only 20%; four of five parameters (currentBalance, monthlyContribution, years, expectedReturnPct) have no description anywhere. The tool description supplies no meaning, units, defaults, or expected ranges for any of them, leaving the agent to guess.

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

Purpose2/5

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

"529 calculator" only restates the tool name and hints at a topic (529 education savings plans). It names no verb and no computed output, so an agent cannot tell whether it projects balances, computes contribution limits, or estimates college costs.

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

Usage Guidelines1/5

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

There is no when-to-use guidance at all, and the crowded sibling set contains obvious confusable alternatives (converters_college_cost, converters_compound_interest, converters_contribution_limits, converters_401k) that the description does nothing to disambiguate from.

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

converters_affordabilityA
Read-onlyIdempotent
Inspect

Home affordability and debt-to-income calculator: maximum home price at the 28/36 guideline and 31/43 stretch limits

NameRequiredDescriptionDefault
vaUseNoVA funding fee class (VA loans only).
yearsNoTerm in years (default 30).
ratePctYesAnnual mortgage rate in percent.
loanTypeNoDefault conventional.
homePriceNoA price to check: adds the front and back ratios and a verdict for it.
hoaMonthlyNoMonthly HOA dues.
pmiRatePctNoConventional PMI rate in percent of the loan a year (default 0.6).
downPaymentNoDown payment as an amount. Send this or downPaymentPct (default 20%).
annualIncomeNoGross yearly income. Send this or monthlyIncome.
maxBackEndPctNoYour own total-debt-ratio limit in percent.
monthlyIncomeNoGross monthly income.
downPaymentPctNoDown payment as a percent of the price.
maxFrontEndPctNoYour own housing-ratio limit in percent. When either limit is sent the response has one 'custom' result instead of guideline and stretch.
propertyTaxPctNoYearly property tax as a percent of the price (default 1.1).
otherMonthlyDebtsNoOther monthly debt payments (car, cards, student loans).
homeInsuranceAnnualNoYearly homeowners insurance.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, closed-world, non-destructive behavior, so the bar is lower. The description adds genuine context by naming the two output profiles the calculator returns (guideline vs stretch), which helps the agent anticipate the response shape despite there being no output 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 dense sentence that front-loads the tool's identity and ends with the concrete output. No filler or redundant restatement of the name.

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 a 16-param tool with full schema coverage and no output schema, the description plus schema cover the essentials. It stops short of explaining what the 28/36 and 31/43 ratios mean or how custom limits alter the response, but the schema fills the custom-result detail, so nothing critical for correct invocation 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% across all 16 parameters, so the schema already carries full semantics including enums and defaults. The description adds no parameter-level detail beyond the schema, making baseline 3 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?

States a specific verb+resource ('Home affordability and debt-to-income calculator') and concretely says what it produces (maximum home price at 28/36 and 31/43 limits). It is distinguishable from converters_mortgage and calculate_loan by its affordability/DTI focus, though it never names those siblings 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?

Usage is implied by the name and the 28/36–31/43 phrasing, but there is no explicit when-to-use, when-not, or pointer to converters_mortgage/converters_refinance for related queries. An agent can infer the context but gets no routing guidance.

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

converters_amortizationC
Read-onlyIdempotent
Inspect

Loan amortization schedule with optional payment dates and step-by-step working

NameRequiredDescriptionDefault
monthsYes
principalYes
annualRatePctYes
firstPaymentDateNoOptional date the first payment is due, as YYYY-MM-DD. Adds a date to every schedule row and returns firstPaymentDate, lastPaymentDate and payoffDate. It only labels the schedule; the amounts do not change. A payment day of 29 to 31 moves to the last day of shorter months.

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare this as a safe, idempotent, non-destructive read operation. The description adds that it produces a schedule and step-by-step working, but it does not disclose rounding assumptions, rate conventions, or the return structure.

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 words. However, it is arguably too compressed for a financial calculation tool with four parameters.

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?

There is no output schema, low parameter description coverage, and the description does not explain the schedule contents, required inputs, or calculation assumptions. For a financial calculator, this leaves important context missing.

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

Parameters2/5

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

Schema description coverage is only 25%, with detailed documentation only for firstPaymentDate. The description's 'optional payment dates' echoes that schema text but does not clarify the required principal, annualRatePct percent format, or months semantics.

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

Purpose3/5

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

The phrase 'Loan amortization schedule' identifies the resource, but there is no clear action verb and no differentiation from sibling calculators such as calculate_loan, converters_mortgage, or converters_loan_interest.

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 instead of the many sibling loan and mortgage calculators. Any usage context must be inferred from the tool name alone.

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

converters_college_costD
Read-onlyIdempotent
Inspect

College cost calculator

NameRequiredDescriptionDefault
yearsYes
startDateNoOptional date the first year starts, as YYYY-MM-DD. Adds the start date of each year to byYear, plus startDate and endDate for the whole program. It only labels the years; the costs do not change.
annualCostYes
inflationPctNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already establish that this is a safe, read-only, idempotent calculation. The description adds no behavioral context such as how inflation is applied, what assumptions are made, or what the result represents.

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

Conciseness2/5

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

The description is only three words, so it is not verbose, but it is under-specified rather than appropriately concise. It fails to front-load any useful information about the calculation being performed.

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

Completeness1/5

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

For a financial projection tool with four parameters, no output schema, and low schema description coverage, the description is completely inadequate. An agent cannot determine the calculation model, output shape, or how the parameters interact from this text.

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

Parameters1/5

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

Schema description coverage is only 25%, and the description provides no parameter meaning at all. Critical semantics such as whether annualCost is in current or future dollars, how inflationPct defaults or compounds, and whether years can be fractional are left entirely undocumented.

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

Purpose2/5

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

The description is essentially a restatement of the tool name, 'converters_college_cost', with no additional specificity. It does not clarify whether it projects four-year costs, applies inflation, or compares to siblings like converters_529 or converters_student_loan.

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 this tool versus the many sibling calculators, nor any prerequisites or exclusions. The only implied usage is the vague notion of calculating college costs, which the tool name already conveys.

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

converters_contribution_limitsC
Read-onlyIdempotent
Inspect

Retirement and HSA contribution limits by tax year: 401(k), SIMPLE, IRA, Roth phase-out and HSA

NameRequiredDescriptionDefault
ageNoAge reached by the end of the year: adds the catch-up for 401(k) (50, and the larger 60 to 63 amount), IRA (50) and HSA (55) and the total for that age.
magiNoModified adjusted gross income. With filingStatus: the Roth IRA contribution you are allowed after the income phase-out (and, with coveredByWorkplacePlan, the traditional IRA deduction). Phase-out ranges are in the table for 2026 only.
taxYearNoTax year, 2025 or 2026 (default: the latest in the table). Other years are a 400 that lists the years available.
hsaCoverageNoHSA coverage in December: adds the limit for it.
filingStatusNoNeeded with magi.
coveredByWorkplacePlanNotrue adds the traditional IRA deduction phase-out for someone covered by a workplace plan.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description does not contradict that, and its item list is the only hint at what the response contains, but it adds no behavioral detail such as the 400-for-unsupported-year behavior or the 2026-only phase-out scope, both of which live only 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?

A single compact clause, front-loaded with the domain and followed by an enumerated scope. Nothing is padded, though the telegraphic style (no verb, colon-separated list) leaves it slightly under-specified rather than optimally crisp.

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 and six optional parameters, the description should at least sketch the return shape (a per-year limits table) and default behavior when called with no arguments. It gestures at the covered categories but never says what comes back or what the defaults produce, leaving real gaps for a zero-required-parameter 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 property descriptions are unusually rich — they explain catch-up amounts by age, the magi/filingStatus interaction, and the 2025/2026 taxYear constraint. The description contributes nothing about any of the six parameters, so baseline 3 applies.

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

Purpose3/5

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

The description names a concrete resource set — '401(k), SIMPLE, IRA, Roth phase-out and HSA' contribution limits by tax year — so an agent can tell it is a limits-lookup, not a calculator. However, it is a bare noun phrase with no verb, and it never distinguishes itself from close siblings like converters_401k, converters_retirement, or converters_rmd, all of which sound related.

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 when-to-use guidance, no exclusions, and no named alternatives. An agent choosing between this and converters_401k or converters_retirement gets no routing signal from the description and must infer the split from the tool name alone.

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

converters_countdownD
Read-onlyIdempotent
Inspect

Countdown calculator

NameRequiredDescriptionDefault
fromIsoNo
isoTargetYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say whether the countdown is computed from 'now' when fromIso is omitted, what unit/granularity the result uses, or whether negative results occur for past targets.

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

Conciseness2/5

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

Two words are technically concise, but this is under-specification rather than efficient communication; there is no front-loaded scope, input expectation, or result statement to anchor the agent.

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

Completeness1/5

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

With no output schema, 0% parameter documentation, and a two-word description, an agent has no information about inputs, format requirements, or return shape. The definition is not sufficient to call the tool correctly without inspecting the schema and guessing semantics.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not mention either parameter. The meaning of fromIso (start instant, presumably defaulting to now) and isoTarget (target ISO-8601 datetime) is left entirely to inference, including the expected ISO format.

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

Purpose2/5

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

"Countdown calculator" only restates the tool name/title (converters_countdown / Converters Countdown) without naming a resource, a unit, or an output. It gives no basis for distinguishing this from the sibling planning_travel_countdown, which also computes a countdown.

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 when-to-use guidance, no prerequisites, and no mention of the obvious alternative (planning_travel_countdown). An agent must guess which countdown tool to pick and in what situation.

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

converters_debt_payoffA
Read-onlyIdempotent
Inspect

Debt payoff planner: avalanche and snowball plans with payoff dates, interest and a minimums-only baseline

NameRequiredDescriptionDefault
debtsYesThe debts to pay off, 1 to 30.
strategyNoavalanche = highest rate first, snowball = smallest balance first, both (default) returns both and compares them.
startDateNoDate of the first payment, YYYY-MM-DD. Adds a payoff date for every debt and the debt-free date.
extraMonthlyNoMoney you can add each month on top of all the minimums. Send this or totalMonthlyBudget.
totalMonthlyBudgetNoTotal you can pay each month across all debts (at least the sum of the minimums).

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add what the annotations cannot. It does that by disclosing the computation's outputs: payoff dates, interest totals, and a minimums-only baseline for comparison, which tells an agent more about the result shape than the annotations do. It stops short of describing error conditions or how the baseline is computed.

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 clause that front-loads the resource type, then the methods, then the outputs. Zero filler and no repetition of schema 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?

For a read-only calculator with five fully documented parameters and no output schema, the description gives enough about what comes back (payoff dates, interest, baseline comparison) that an agent can decide it is the right tool. It omits currency/units and any indication of output structure, which keeps it from 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 description coverage is 100%, so the schema already documents every parameter including the strategy enum and the extraMonthly/totalMonthlyBudget alternative. The description adds nothing parameter-specific beyond strategy naming, so it sits at the baseline-plus level rather than adding independent 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?

Names a specific domain (debt payoff planning) and the two concrete methods it implements (avalanche, snowball), plus the outputs it produces (payoff dates, interest, minimums-only baseline). It does not explicitly differentiate itself from near-neighbors like converters_amortization, converters_loan_interest, or calculate_loan, so an agent must infer the distinction.

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 never states when to use this tool, when not to, or which sibling tools (e.g. converters_amortization, calculate_loan) cover overlapping needs. Usage is only implied by the resource being named; no prerequisites or input-format guidance are given.

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

converters_exchange_ratesA
Read-onlyIdempotent
Inspect

Exchange rates: daily reference rates for about 200 currencies, crypto and metals, with ECB fallback and ECB history (reference rates, not live)

NameRequiredDescriptionDefault
toNoCurrency code, or a list of up to 20 codes, to convert to. Required unless listCurrencies is true.
dateNoA past date, YYYY-MM-DD: the daily rate for that day (ECB set: the latest earlier working day if none was published).
fromNoCurrency code to convert from (default USD): ISO codes such as USD, plus crypto and metal codes in the broad set.
amountNoAmount to convert (default 1).
sourceNoauto (default): the broad daily set of about 200 currencies, crypto and metals, falling back to the ECB set; broad: only the broad set; ecb: only the ECB set (about 30 currencies, and the only one with history ranges).
endDateNoHistory: last day of the range.
startDateNoHistory: first day of a range of up to 366 days (send with endDate).
listCurrenciesNotrue returns the supported currency codes (with type and name) and the date of the latest rates.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already mark the tool read-only, idempotent, non-destructive and open-world. The description adds meaningful context beyond annotations by disclosing that rates are daily reference rates, not live, and that there is ECB fallback and ECB history. It does not mention rate limits or response shape, but the annotations carry much of the safety burden.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It packs the key scope, coverage, fallback behavior and freshness constraint into one readable line.

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 an eight-parameter read-only tool with full schema coverage, rich annotations and no output schema, the description is mostly complete. It could say more about the response structure, but the schema and annotations cover the calling mechanics and safety profile well enough.

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

Parameters3/5

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

Schema description coverage is 100%, so all eight parameters are already documented in the schema. The description adds high-level context about the broad set, ECB fallback and history but does not add parameter-specific semantics beyond what the schema provides. This meets the baseline 3 for a fully documented 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 states a specific resource and scope: daily reference exchange rates for about 200 currencies, crypto and metals, including ECB fallback and history, explicitly noting they are not live. It is clear what the tool returns, though it does not directly distinguish itself from the sibling convert_currency tool.

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

Usage Guidelines2/5

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

The description explains capabilities but gives no explicit when-to-use guidance or alternatives. It does not say when to prefer this over convert_currency, nor does it specify exclusions beyond the parenthetical 'not live' note.

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

converters_file_sizeC
Read-onlyIdempotent
Inspect

File size converter

NameRequiredDescriptionDefault
toYes
fromYes
valueYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description adds nothing about the behavior that actually matters here — whether KB means 1000 or 1024 bytes, rounding/precision of results, or accepted value ranges.

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

Conciseness2/5

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

Three words is not conciseness but under-specification; unlike a tight one-liner that still conveys scope, this phrase conveys no more than the tool name. There is no front-loaded statement of what gets converted to what.

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

Completeness2/5

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

The tool is mechanically simple with enums provided and no output schema, so the bar is modest, but the description still leaves the agent without the one piece of information unique to this tool: the byte-base convention and result precision. For a 3-parameter, 0%-documented schema, that is a real gap.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden and provides nothing: it does not explain that 'value' is the magnitude, that from/to are unit enums (B through PB), or what unit system the conversion assumes. The enum lists in the schema help, but the critical base-2 vs base-10 question is left unresolved.

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

Purpose2/5

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

The description 'File size converter' essentially restates the tool name converters_file_size with no added specificity. It does not distinguish the tool from the unit-conversion siblings (convert_length, convert_temperature, convert_weight) beyond the noun 'file size', and gives no verb describing 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?

There is no guidance on when to use this tool versus the many sibling converters, nor any prerequisites or exclusions. The agent must infer from the name alone that this handles digital storage units.

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

converters_fireD
Read-onlyIdempotent
Inspect

FIRE calculator

NameRequiredDescriptionDefault
startDateNoOptional plan start date, as YYYY-MM-DD. When the target is reached, adds startDate and fireDate (the start plus yearsToFire years). It only labels the timeline; the amounts do not change.
annualSpendYes
currentSavingsNo
expectedReturnPctNo
withdrawalRatePctNo
annualContributionNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of assumptions (default return/withdrawal rates), rounding, or what the calc returns, leaving the agent with only structured hints.

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

Conciseness2/5

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

Two words are not conciseness but under-specification. There is no front-loaded statement of what is computed or returned, so nothing useful is conveyed in the space used.

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

Completeness1/5

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

A six-parameter financial projection tool with no output schema and no annotations explaining return shape needs the description to carry the load. It instead gives a bare label, leaving required inputs, defaults, and output meaning entirely unexplained.

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

Parameters1/5

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

Schema description coverage is only 17% — just startDate is documented — and the description supplies no meaning for annualSpend, currentSavings, expectedReturnPct, withdrawalRatePct, or annualContribution. With five of six parameters unexplained anywhere, the description fails to compensate.

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

Purpose2/5

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

"FIRE calculator" restates the tool name (converters_fire) and only signals the domain acronym. It does not state a verb or resource, nor distinguish it from close siblings like converters_retirement or calculate_compound_interest; at best an agent infers "financial independence / retire early projection".

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

Usage Guidelines1/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 this versus converters_retirement, converters_401k, or calculate_compound_interest, and no prerequisites or exclusions. The agent must guess from the name alone.

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

converters_india_income_taxC
Read-onlyIdempotent
Inspect

India income tax FY 2026-27: old and new regime, standard deduction, rebate, surcharge and cess

NameRequiredDescriptionDefault
ageNoAge group (old regime slabs). Default below60.
incomeYesAnnual salary or pension income in rupees. The standard deduction is taken off it.
regimeNoWhich regime the top-level tax and effectiveRatePct report. Default old. Both regimes are always returned in 'regimes'.
itemisedNoOld-regime deductions itemised, with the caps applied and returned in deductionBreakdown. Use instead of deductions.
deductionsNoOld regime only: total of 80C, 80D, HRA, home-loan interest and other deductions.
employerNpsNoEmployer NPS contribution, section 80CCD(2), capped at 14% of salary (new) or 10% (old).
otherIncomeNoOther annual income in rupees (business, interest, rent). No standard deduction.

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds the meaningful fiscal-year scope (FY 2026-27 rules), which tells the agent which statutory tables apply, but says nothing about return contents or assumptions beyond that.

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

Conciseness3/5

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

It is a single economical fragment with no padding, but the terseness crosses into under-specification: a colon-separated noun list is not a front-loaded statement of what the tool does.

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

Completeness2/5

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

With seven parameters including a deep nested object and no output schema, the description should say at least what is returned (tax, effectiveRatePct, per-regime results, deductionBreakdown). It leaves the entire output shape and the old-vs-new regime semantics to 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% and every field, including the nested `itemised` sub-object with its caps (80C 1.5L, 80D 25k/50k, 80CCD(1B) 50k), is documented in the schema itself. The description contributes one detail beyond it — the list of taxes computed — but no parameter-level clarification. Baseline 3 applies.

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

Purpose3/5

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

Names a specific resource (India income tax, FY 2026-27) and enumerates the components it covers (old/new regime, standard deduction, rebate, surcharge, cess), so an agent can infer calculation. But it omits any verb — no 'calculate' or 'estimate' — and never distinguishes itself from the very similar siblings converters_us_income_tax, converters_uk_tax, and converters_state_tax.

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 this versus the other country/state tax calculators, nor on when an agent should choose old vs new regime or whether to supply `deductions` or `itemised`. Usage must be inferred entirely from the name.

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

converters_job_experienceD
Read-onlyIdempotent
Inspect

Job experience calculator

NameRequiredDescriptionDefault
endIsoNo
startIsoYes
otherJobsNoMore jobs. When given, the top-level years, months and label are the TOTAL across all jobs (overlapping periods counted once; the first job alone is in `firstJob`), and the response also has a `history` object: each job's length, the total, and the gaps between jobs.
countEndDateNoOnly used with otherJobs. true (default) counts the end date as a full day, so 1 Jan to 31 Dec is one year.

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so the safety profile is covered. However, the description adds nothing about the calculation behavior, such as how overlapping jobs are handled, defaults for ongoing jobs, or what output fields are produced.

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

Conciseness2/5

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

It is extremely short, but the issue is under-specification rather than conciseness. The single noun phrase is front-loaded with no useful detail.

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

Completeness1/5

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

For a calculator with four parameters, optional multi-job aggregation, overlap rules, and no output schema, this description is inadequate. It does not explain return values, date formats, or multi-job behavior.

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

Parameters2/5

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

Schema description coverage is only 50%, and the description adds no parameter meaning at all. The schema itself explains otherJobs and countEndDate, but startIso and endIso remain undocumented and the description does not compensate.

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

Purpose2/5

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

The description is essentially a restatement of the tool name and title: 'Job experience calculator' gives the domain but no specific verb or output. It does not distinguish this tool from the many other calculator siblings in any meaningful way.

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 this tool, what it is for versus alternatives, or any prerequisites. The description provides no usage context beyond the bare topic.

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

converters_loan_interestB
Read-onlyIdempotent
Inspect

Loan and interest calculator: loan payments, simple interest and compound interest with contributions in one endpoint

NameRequiredDescriptionDefault
feeNoLoan: upfront fee; adds the APR and money received.
kindYesloan: payment, schedule and solving; simple-interest; compound-interest (with regular contributions and inflation).
yearsNoTerm in years.
paymentNoLoan: target payment per period for solveFor amount, term or rate.
loanTypeNoLoan: amortized (default), deferred or zeroCoupon.
solveForNoLoan: what to solve for; amount, term and rate need 'payment'.
frequencyNoCompound interest: compounding frequency (default annually).
principalNoAmount. For kind loan it is required except when solveFor is 'amount'.
startDateNoInterest kinds: start date, YYYY-MM-DD; adds the maturity date.
compoundingNoLoan: how interest compounds (default: on every payment).
extraMonthlyNoPlain monthly loan: extra principal each month; adds interest saved and payments saved.
inflationPctNoCompound interest: adds the future value in today's dollars.
previewMonthsNoLoan: number of schedule rows to return, 0 to 12.
yearlySummaryNoPlain monthly loan: adds a year-by-year principal, interest and balance table.
firstPaymentDateNoLoan: date of the first payment, YYYY-MM-DD; adds payment dates and the payoff date.
paymentFrequencyNoLoan: payment frequency (default monthly).
annualRatePercentNoAnnual rate in percent.
contributeAtStartNoCompound interest: true adds each contribution at the start of the month instead of the end.
compareWithCompoundNoSimple interest: adds the result with annual compounding for comparison.
monthlyContributionNoCompound interest: amount added every month (needs frequency monthly).

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this as read-only, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds no notable behavioral context beyond naming the calculation modes, and it does not mention return format, limitations, or parameter interactions.

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 with no wasted words, and the core purpose is front-loaded. It efficiently communicates the three calculation families in one endpoint.

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?

This is a complex 20-parameter multi-mode calculator with no output schema, so the one-sentence description is somewhat thin. However, the input schema is rich and fully documented, and annotations cover the safety profile, making it minimally adequate 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 coverage is 100%, and the input schema already documents all 20 parameters, including enum meanings and interactions such as solveFor requiring payment. The description does not add meaning 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.

Purpose4/5

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

The description clearly states a specific calculator covering loan payments, simple interest, and compound interest with contributions. It is clear what the tool does, but it does not distinguish this combined endpoint from dedicated siblings such as calculate_loan, calculate_simple_interest, or calculate_compound_interest.

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 use this combined calculator instead of the many dedicated loan and interest sibling tools. It implies general usage by listing the three modes, but provides no when-not conditions or alternative routing.

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

converters_mortgageA
Read-onlyIdempotent
Inspect

Mortgage calculator: payment with taxes, insurance, PMI and HOA, extra payments, biweekly and payoff date

NameRequiredDescriptionDefault
vaUseNoVA funding fee class (VA loans only). Default first.
yearsYesTerm in years, 1 to 50.
ratePctYesAnnual interest rate in percent.
loanTypeNoDefault conventional. FHA, VA and USDA add their standard fees (see sources in the response).
homePriceYesPurchase price.
hoaMonthlyNoMonthly HOA dues.
pmiRatePctNoConventional PMI rate, percent of the loan a year (default 0.6). Applies only above 80% loan-to-value and stops at 78% of the original price.
downPaymentNoDown payment as an amount. Send this or downPaymentPct (default 20%).
yearlyExtraNoOne extra payment every year.
annualIncomeNoGross yearly income, for the debt-to-income check. Send this or monthlyIncome.
compareYearsNoThe two terms to compare, default [15, 30].
extraMonthlyNoExtra principal paid every month.
hoaGrowthPctNoYearly increase of HOA dues in percent.
oneTimeExtraNoOne extra payment.
taxGrowthPctNoYearly increase of property tax in percent; any growth field adds a year-by-year costGrowth table.
includeYearlyNofalse leaves out the year-by-year table.
monthlyIncomeNoGross monthly income.
closingCostPctNoClosing costs as a percent of the price; adds closing costs and cash to close.
downPaymentPctNoDown payment as a percent of the price.
propertyTaxPctNoYearly property tax as a percent of the price. Send this or propertyTaxAnnual.
firstPaymentDateNoDate of the first payment, YYYY-MM-DD. Adds the payoff dates; it only labels the schedule.
otherMonthlyDebtsNoOther monthly debt payments (car, cards, student loans) for the back-end ratio.
propertyTaxAnnualNoYearly property tax as an amount.
insuranceGrowthPctNoYearly increase of insurance (and maintenance) in percent.
maintenanceMonthlyNoMonthly maintenance and other costs (shown in the total, left out of the debt-to-income housing figure).
homeInsuranceAnnualNoYearly homeowners insurance.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare this as a safe, read-only, idempotent, non-destructive calculation, so the safety profile is covered. The description adds useful feature context such as taxes, insurance, PMI, HOA, extra payments, biweekly payments, and payoff date, but it does not describe return shape or computational assumptions beyond those phrases.

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 zero wasted text. It efficiently lists the calculator's main capabilities in a compact form.

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 complex 26-parameter calculator with nested objects and no output schema, the description covers only the headline capabilities. It does not describe return values, comparison output, debt-to-income behavior, closing-cost output, or other important results, though the full schema compensates substantially for parameter documentation.

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 26 parameters are fully documented in the schema. The description adds only high-level feature names and does not add parameter-level meaning beyond what the schema provides, making the baseline 3 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 resource and calculation: mortgage payments including taxes, insurance, PMI, HOA, extra payments, biweekly payments, and payoff date. It is clearly a mortgage calculator. However, it does not explicitly distinguish itself from siblings like calculate_loan or converters_amortization, so sibling differentiation is left to inference.

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 mortgage framing implies when the tool is appropriate, but there is no explicit guidance on when to use it versus calculate_loan or converters_amortization. No exclusions, prerequisites, or alternative routing are stated.

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

converters_paycheckA
Read-onlyIdempotent
Inspect

Paycheck estimator: 2026 US federal tax, FICA, state tax and pre-tax deductions

NameRequiredDescriptionDefault
stateNoUS state (two-letter code such as NY, or the full name; DC included). Adds that state's 2026 income tax from the same table as the website. Without it, no state income tax is included.
grossAnnualYesGross pay for the year, in US dollars.
filingStatusNoFederal filing status. Default single.
stateRatePctNoOptional flat state rate in percent. When sent it replaces the state lookup (first-version behaviour).
retirementPctNoTraditional 401(k)/403(b) deferral as a percent of gross pay. Lowers income tax but not FICA.
federalRatePctNoOptional flat federal rate in percent. When sent it replaces the 2026 bracket calculation (first-version behaviour).
section125AnnualNoYearly pre-tax health, dental, HSA or FSA deductions. Lowers income tax and FICA.
payPeriodsPerYearNoPay periods per year: 52, 26, 24 or 12. Default 24.
otherDeductionPerCheckNoOther after-tax deduction taken from each paycheck, in dollars.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile needs no restating. The description adds that 2026 tax tables and pre-tax deduction treatment are applied, but says nothing about what the result contains (net per check vs. annual, breakdown by tax type) or rounding/assumption 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?

A single front-loaded sentence with a label, a year, and the list of computed components. No filler, 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?

Penalize? No — for a deterministic calculator with 100% schema coverage and no output schema, the description names the inputs' effects (federal, FICA, state, pre-tax) adequately. However, with nine parameters and no output schema, an agent gets no hint of the return shape, so 3 is fairer.

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 each parameter carries a substantive description (including override semantics for stateRatePct and federalRatePct), so the schema does the heavy lifting. The tool description itself contributes no parameter-level meaning, which is the expected 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?

States a specific resource (paycheck) and enumerates the components computed: 2026 US federal tax, FICA, state tax and pre-tax deductions. It's clear what the tool does, but it draws no boundary against close siblings like converters_us_income_tax or converters_state_tax, which compute overlapping subsets.

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

Usage Guidelines2/5

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

No guidance on when to use this versus converters_us_income_tax, converters_state_tax, or converters_401k, all of which appear in the sibling list. The agent must infer selection from the name alone.

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

converters_refinanceB
Read-onlyIdempotent
Inspect

Refinance break-even calculator: simple and full-cost break-even, interest difference and horizon table

NameRequiredDescriptionDefault
newRatePctYesAnnual rate of the new loan in percent.
closingCostsNoClosing costs as an amount. Send this or closingCostPct.
newTermYearsYesTerm of the new loan in years.
closingCostPctNoClosing costs as a percent of the current balance.
currentBalanceYesWhat you still owe on the current loan.
currentPaymentNoYour actual principal-and-interest payment, if you do not want it calculated from balance, rate and time left.
currentRatePctYesCurrent annual rate in percent.
remainingYearsNoYears left on the current loan. Send this or remainingMonths.
remainingMonthsNoMonths left on the current loan.
plannedYearsToKeepNoHow long you expect to keep the loan; adds a worthIt answer for that horizon.
financeClosingCostsNotrue adds the closing costs to the new loan instead of paying them in cash.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds that multiple result sections (simple vs full-cost break-even, interest difference, horizon table) are produced, which is useful given there is no output schema, but it says nothing about defaults, error behavior, or how omitted optional inputs are handled.

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 dense sentence that front-loads the resource and lists the computed outputs with no filler. Nothing to trim.

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 11 parameters and no output schema, the description does well to enumerate the result sections, but it omits how optional inputs default, what the 'worthIt' answer from plannedYearsToKeep means, and units/return shape. Adequate but with clear gaps for a fairly complex calculator.

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 including the closingCosts/closingCostPct and remainingYears/remainingMonths alternatives is already documented. The description contributes no additional parameter meaning, which is acceptable at this coverage level.

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?

Names a specific resource (refinance break-even) and enumerates the distinct outputs it computes: simple and full-cost break-even, interest difference, and a horizon table. An agent can tell it apart from generic siblings like converters_mortgage or calculate_loan, though the description never explicitly contrasts them.

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 statement of when to use this rather than converters_mortgage, converters_amortization, or business_break_even, and no prerequisites or exclusions. The usage is only implied by the tool name and the enumerated outputs.

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

converters_retirementB
Read-onlyIdempotent
Inspect

Retirement and FIRE projection: nest egg, sustainable income, gap and drawdown with inflation and a withdrawal rate

NameRequiredDescriptionDefault
currentAgeYesYour age now (whole years).
inflationPctNoExpected inflation, percent a year (default 2.5).
retirementAgeYesAge you plan to stop working.
currentSavingsNoInvested savings now.
expectedReturnPctNoExpected nominal return before retirement, percent a year (default 7). An assumption, not market data.
lifeExpectancyAgeNoAge the money must last to (default 95).
otherAnnualIncomeNoPension or Social Security per year in today's dollars, counted from the retirement age (default 0).
withdrawalRatePctNoShare of the nest egg withdrawn in the first year (default 4).
annualContributionNoWhat you add each year, in today's dollars.
desiredAnnualIncomeNoIncome you want per year in today's dollars. Adds the nest egg needed, the gap, the extra saving needed and the years to financial independence.
contributionGrowthPctNoYearly real increase of the contribution in percent (default 0).
returnInRetirementPctNoExpected nominal return during retirement (default: same as before retirement).

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety and determinism are covered structurally. The description adds that this is a projection built on assumptions (inflation, withdrawal rate) and hints at the return values, but does not state that results are deterministic estimates rather than advice, nor how the two required inputs drive the calculation. Modest added value over 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 front-loaded sentence with no filler; every term (nest egg, sustainable income, gap, drawdown, inflation, withdrawal rate) maps to an input or an output of the tool. Nothing could be cut without losing 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 12 parameters, no output schema, and only 2 required inputs, the description should at minimum clarify that currentAge and retirementAge are the anchors and roughly what shape the result takes. It names the outputs but not their form, and leaves the sibling overlap with converters_fire unresolved. Adequate but with clear gaps for a calculator of this 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% and every parameter carries a definition with its default, so the schema does the heavy lifting. The description's mention of 'inflation' and 'a withdrawal rate' merely echoes two schema entries without adding units, interactions, or defaults beyond what is already documented. 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 names the resource (retirement/FIRE projection) and enumerates the computed outputs: nest egg, sustainable income, gap, drawdown, plus the inflation and withdrawal-rate levers. That is far more specific than a tautology. However, it never distinguishes itself from the sibling converters_fire, which the word 'FIRE' explicitly overlaps with, so an agent cannot route between them from this text alone.

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 when-to-use or when-not guidance, no prerequisites, and no named alternative. The presence of closely related siblings (converters_fire, converters_401k, converters_rmd, converters_social_security) makes this omission costly — the description gives no signal about which one an agent should pick.

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

converters_rmdB
Read-onlyIdempotent
Inspect

RMD estimator using the IRS Uniform Lifetime Table

NameRequiredDescriptionDefault
ageYesAge you reach this year (72 to 120). The IRS Uniform Lifetime Table divisor for that age is used.
birthYearNoBirth year. Adds the SECURE 2.0 RMD start age (73 for 1951-1959, 75 for 1960 or later) and whether an RMD is required yet.
accountBalanceYesAccount balance on 31 December of the previous year.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds no further behaviour such as that birthYear unlocks SECURE 2.0 start-age logic or that the result is an estimate only — that context lives only 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?

A single front-loaded sentence with no filler. It is efficient, though so short that it borders on under-specification given the domain acronym.

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 three-parameter pure calculator with no output schema the description is minimally adequate, but it never says what is returned (an annual RMD dollar amount) or which table row applies, leaving output interpretation to inference.

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 (age range 72-120, birthYear SECURE 2.0 rules, prior-year-end balance) is documented there. The description adds nothing 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.

Purpose4/5

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

States a specific resource (RMD) and the method (IRS Uniform Lifetime Table), so an agent knows exactly what is computed. It does not differentiate from neighbouring converters_401k / converters_529, and relies on the reader knowing the RMD acronym.

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 statement of when to use this versus other retirement converters, no prerequisites (e.g. must be near or past RMD start age), and no exclusions. Usage must be inferred entirely from the name and schema.

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

converters_romanD
Read-onlyIdempotent
Inspect

converters roman

NameRequiredDescriptionDefault
valueYestoRoman: a whole number from 1 to 3,999,999 (above 3,999 the thousands get a bar over every letter, written with the Unicode combining overline U+0305). fromRoman: a numeral; barred letters may be typed with U+0305 or as a bracketed group such as (V) for 5,000.
directionYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing about behavior — no mention of input ranges, how barred numerals are handled, or what happens with out-of-range values. It neither contradicts nor enriches 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.

Conciseness2/5

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

Two words is short but this is under-specification rather than conciseness — there is no front-loaded purpose, no structure, and nothing that earns the zero-information sentence.

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

Completeness2/5

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

The tool is simple (two required parameters, no output schema, closed-world), so a short description could have sufficed, but this one tells an agent nothing about direction semantics or expected output, forcing a schema read to call it correctly.

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

Parameters2/5

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

Schema coverage is only 50%: the 'value' property carries detailed format documentation, but 'direction' has only an enum with no explanation of what each value produces. The description does nothing to compensate for that gap, so it fails the low-coverage threshold where description must carry weight.

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

Purpose2/5

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

The description is just the tool name restated as two words, 'converters roman'. It does not state a verb, the resource being converted, or the conversion direction (Roman numerals to numbers and back). An agent must open the schema to learn anything about what it does.

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

Usage Guidelines1/5

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

No guidance whatsoever on when to use this versus siblings such as convert_length or convert_temperature, and no mention of the two directions available. Everything must be inferred from the enum.

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

converters_self_employment_taxC
Read-onlyIdempotent
Inspect

Self-employment tax: 2026 wage base, Medicare and Additional Medicare

NameRequiredDescriptionDefault
asOfNoYYYY-MM-DD. Payments due on or before this date are treated as past when spreading what is still to pay. Default: all four are still ahead.
stateNoWith includeIncomeTax: a US state (two-letter code or name) to add that state's income tax on the profit.
methodNo'even' (default): four equal payments. 'annualized': each payment follows the income earned so far (needs cumulativeProfit); good for seasonal income.
w2WagesNoW-2 wages from a job in the same year. They use up part of the Social Security wage base and count toward the Additional Medicare threshold.
netProfitYesNet self-employment profit for the year, in US dollars.
filingStatusNoFederal filing status. Default single.
paymentsMadeNoEstimated payments already made this year. Counts against the yearly total in the 'remaining' block and the safe harbour.
priorYearAgiNoWith priorYearTax: last year's adjusted gross income; above $150,000 ($75,000 married filing separately) the safe harbour is 110% of last year's tax.
priorYearTaxNoWith includeIncomeTax: last year's federal total tax (self-employment plus income tax), for the IRS safe-harbour test on the federal part (100% of last year's tax, or 110% if priorYearAgi is above the threshold).
ytdWithholdingNoWith includeIncomeTax: federal income tax already withheld this year (for example from a W-2 job). Counts against the yearly total in the 'remaining' block and the safe harbour.
cumulativeProfitNoWith method 'annualized': net profit earned so far through Mar 31, May 31 and Aug 31 (cumulative, rising, not above netProfit). netProfit is the full-year figure.
includeIncomeTaxNotrue adds federal income tax (2026 brackets, standard deduction, after the half self-employment tax deduction) so quarterlyPayment is the whole estimated payment. Default false: quarterlyPayment is the self-employment tax divided by 4.
priorYearStateTaxNoWith includeIncomeTax and state: last year's state income tax, for the state's own safe-harbour test. Without it the state test is 90% of this year's state tax. priorYearTax is last year's federal total (self-employment plus income tax) and is tested against the federal figure only.

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already establish readOnly/idempotent/non-destructive, so the description's only added disclosure is the 2026 tax year and the tax components covered (Medicare, Additional Medicare). It never discloses the tool's actual behavior — quarterly payment splitting, even vs. annualized methods, safe-harbour logic, or asOf-relative past/future treatment — all of which materially affect interpreting results.

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?

There is no wasted verbiage and the domain is front-loaded, but the single fragment is under-specified rather than concise for a tool with 13 parameters and substantial conditional behavior. Brevity here reflects omission, not efficiency.

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

Completeness2/5

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

Given 13 parameters, conditional logic (state tax, prior-year safe harbour, annualized cumulative profit) and no output schema, the description should at minimum say it returns estimated quarterly payments and what the main knobs mean. A one-line keyword fragment leaves the agent to reverse-engineer intent entirely from 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%: all 13 parameters, including enums and the conditional dependencies (priorYearAgi with priorYearTax, cumulativeProfit with method='annualized'), are documented in the schema itself. The description adds no parameter meaning beyond that, so the baseline 3 applies.

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

Purpose2/5

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

The description is a noun-phrase fragment that largely restates the tool name plus topic keywords ('2026 wage base, Medicare and Additional Medicare'). It never states the operation — that the tool computes self-employment tax and quarterly estimated payments — so an agent cannot tell what it produces versus siblings like converters_us_income_tax or converters_state_tax.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no exclusions, and no mention of the closely related siblings (converters_us_income_tax, converters_state_tax) even though the schema implies overlap via includeIncomeTax and state. Nothing helps an agent choose this tool over an alternative.

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

converters_social_securityB
Read-onlyIdempotent
Inspect

Social Security retirement benefit estimate with 2026 bend points

NameRequiredDescriptionDefault
claimAgeNoAge you start benefits, 62 to 70 (decimals such as 62.5 are rounded to whole months). Default 67.
birthYearNoBirth year, which sets full retirement age (67 if born 1960 or later). Default 1960.
yearsWorkedNoWith annualEarnings: years of work, up to 35 (default 35).
annualEarningsNoAlternative to AIME: current yearly earnings (capped at the 2026 wage base of $184,500). AIME is estimated from it.
averageIndexedMonthlyEarningsNoYour AIME (average indexed monthly earnings) from your SSA statement. Send this or annualEarnings.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds one real behavioral detail — that benefits are computed with 2026 bend points — but says nothing about all-optional inputs defaulting (67 claim age, 1960 birth year, 35 years worked) or about the form of the result.

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 phrase with zero filler, but it is arguably over-compressed for a 5-parameter financial estimator — there is room to add routing detail without 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?

With all five parameters optional and fully described in the schema, and no output schema, the definition is minimally viable. It omits what the estimate actually returns (e.g., monthly benefit at claim age) and any hint about the default-driven behavior, which an agent would want before calling.

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 fully documents ranges, defaults, the $184,500 wage cap, and the AIME-vs-annualEarnings either/or. The description adds no parameter-level information, which is acceptable at baseline 3 given the schema's completeness.

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 resource (Social Security retirement benefit) and verb (estimate), plus the calculation basis (2026 bend points). It is clear what the tool computes, though it never names the siblings it might be confused with, such as converters_retirement, converters_401k, or converters_rmd.

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 when-to-use guidance at all: nothing says to pick this over converters_retirement or converters_rmd, and nothing states prerequisites such as needing an AIME figure or earnings estimate. The agent must infer usage entirely from the name and schema.

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

converters_state_taxC
Read-onlyIdempotent
Inspect

US state income tax with a 50-state schedule lookup

NameRequiredDescriptionDefault
stateNoUS state (two-letter code such as NY, or the full name; DC included). Looks up that state's 2026 brackets, standard deduction and exemptions. Send this or ratePct.
incomeYesAnnual income subject to state tax, in US dollars.
ratePctNoFlat rate in percent (first-version behaviour). Takes priority over state.
localityNoA named city or county for the chosen state (id from the response's availableLocalities, e.g. ny-nyc, ny-yonkers, md-montgomery, pa-philadelphia, mi-detroit, mo-kansas-city, mo-st-louis, oh-columbus). Adds its local income tax as its own 'locality' object and replaces the typical average (includeLocal is then ignored). 'tax' is unchanged; see totalWithLocalAndPayroll.
filingStatusNoFiling status for the state schedule. Default single.
includeLocalNotrue adds an average local income tax where the state has local taxes (an estimate). Default false.
localityRoleNoWith locality: resident (default) or worker (live elsewhere, work there) where a non-resident rate was confirmed (Philadelphia, Detroit, Kansas City, St. Louis).

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety and idempotency are covered. The description adds only the coverage claim of 50 states; it says nothing about what the response contains (brackets, standard deduction, effective rate, totalWithLocalAndPayroll) or the estimate caveat for average local taxes, even though no output schema exists to carry that.

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?

It is a single eight-word fragment with no waste, but it is not front-loaded with an action verb or scope statement, and the brevity comes at the cost of under-specification rather than efficiency.

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

Completeness2/5

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

With seven parameters, no output schema, and a non-obvious interaction between state, ratePct, locality, includeLocal and localityRole, the description should explain what the tool returns and how the modes differ. It instead offers one clause, leaving the agent to reconstruct the tool's behaviour entirely from schema property text and to guess at its relationship to converters_us_income_tax.

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 seven parameters including the state/ratePct priority rule, locality IDs and filingStatus enum are already documented in the schema. The description contributes no parameter-level meaning beyond that, so the baseline of 3 applies.

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

Purpose3/5

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

The phrase 'US state income tax with a 50-state schedule lookup' identifies the resource (state income tax) and the mechanism (bracket schedule lookup covering all 50 states), but it is a noun fragment with no verb and no statement of what the tool actually returns or computes. It also does not distinguish itself from the sibling converters_us_income_tax, which an agent could easily confuse it with.

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 when-to-use guidance at all: nothing says to prefer this over converters_us_income_tax for state-level tax, or over calculate_sales_tax for a different tax type. The only implicit signal is 'state' versus the federal/India/UK siblings, which the agent must infer from the name alone.

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

converters_student_loanC
Read-onlyIdempotent
Inspect

Student loan calculator

NameRequiredDescriptionDefault
ibrNoAlso show IBR at 10% (loans from 1 July 2014, 20 years) or 15% (older loans, 25 years) of discretionary income. Only for borrowers whose loans were all made before 1 July 2026.
stateNoTwo-letter state code. AK and HI use their own poverty guideline for IBR; anything else the 48-state figure.
incomeNoYearly adjusted gross income. Adds incomeDriven: the Repayment Assistance Plan payment (and IBR with ibr) beside the standard plan, with total paid, term and forgiven balance.
principalYes
refinanceNoA private refinance on the same balance: returns the new payment and the interest saved or added.
dependentsNoDependents claimed on the tax return (RAP takes $50 a month off for each). With income.
annualRatePctYes
householdSizeNoHousehold size for the IBR poverty guideline. With income. Default 1.
monthlyPaymentNoThe payment you make. Send this or standardTermYears.
firstPaymentDateNoOptional date the first payment is due, as YYYY-MM-DD. Adds firstPaymentDate, lastPaymentDate and payoffDate to the result. It only labels the result; the months, interest and totals do not change. A payment day of 29 to 31 moves to the last day of shorter months.
standardTermYearsNoUse the standard payment for this many years instead of sending monthlyPayment.

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that - no mention of which optional inputs unlock which result blocks (IBR, RAP, refinance savings) or of any limits.

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

Conciseness2/5

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

The single phrase is short but under-specified rather than concise; nothing is front-loaded because there is nothing to front-load. Every sentence that would earn its place (scope, key modes, output behavior) is absent.

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

Completeness1/5

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

With 11 parameters, a nested refinance object, enum and state-dependent IBR logic, and no output schema, this tool needs substantial description. The three-word description leaves an agent unable to tell what the calculator produces or how the optional blocks interact.

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 82%, above the threshold where the schema alone is considered adequate, so the baseline of 3 applies. The description contributes no additional parameter meaning - notably it never clarifies the monthlyPayment versus standardTermYears choice or the income-gated IBR/RAP outputs.

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

Purpose2/5

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

"Student loan calculator" only restates the tool name and title in noun form; there is no verb describing what the tool actually computes or returns. It gives no signal distinguishing it from the sibling calculate_loan or converters_amortization, both of which plausibly overlap with loan math.

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 when-to-use guidance, no prerequisites, and no mention of the closest alternatives (calculate_loan, converters_amortization). An agent must guess whether this tool or a sibling is the right one for a plain amortization versus income-driven repayment scenarios.

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

converters_tdeeC
Read-onlyIdempotent
Inspect

Calorie TDEE calculator

NameRequiredDescriptionDefault
ageYes
sexYes
activityNo
heightCmYes
highDaysNoWeekly calorie cycling: how many higher-calorie days a week (1 to 3).
swingPctNoHow far above the daily target the higher days sit, in percent. Default 15.
weightKgYes
cycleGoalNoWhich daily target to spread over the week. Default maintain.
macroGoalNoAdds a macros block: grams of protein, carbohydrate and fat for the matching calorie target (lose = cut, maintain = TDEE, gain = bulk), the percentage split, and whether each share sits inside the Institute of Medicine AMDR ranges.

TDQS

C2/5.0
Behavior2/5

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

The annotations already establish that this is a read-only, idempotent, non-destructive calculation. The description adds no behavioral context beyond that, such as whether it returns only a calorie target or also optional macro/cycling outputs.

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

Conciseness2/5

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

The description is concise to the point of being under-specified. It is a short phrase rather than a structured explanation, and it omits information needed to understand the tool's behavior or parameters.

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

Completeness1/5

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

For a nine-parameter calculator with no output schema, the description is completely inadequate. It does not explain required inputs, optional macro/cycling behavior, defaults, or what the tool returns.

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

Parameters1/5

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

The description provides no parameter meaning at all. With nine parameters and only 44% schema description coverage, the description should compensate for undocumented required inputs and optional cycling/macro options, but it does not.

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

Purpose3/5

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

The description identifies the tool as a TDEE calorie calculator, so the general domain is clear. However, it does not explain what is actually calculated or how it differs from the closely related calculate_bmr sibling, making it only minimally distinguishing.

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 this tool versus calculate_bmr, calculate_bmi, estimate_body_fat, or other calorie/body-metric siblings. The description provides no conditions, exclusions, or alternatives.

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

converters_uk_taxB
Read-onlyIdempotent
Inspect

UK income tax and Class 1 National Insurance 2026/27 with Scottish rates

NameRequiredDescriptionDefault
bonusNoA one-off bonus or overtime in the year, in pounds. Returns what it adds on its own in 'bonus'.
incomeYesGross annual salary in pounds.
taxCodeNoOptional PAYE tax code as printed on a payslip: 1257L, 1383M, 0T, BR, D0, D1, NT, K475, S1257L (Scotland), C1257L (Wales), SBR, SD0 to SD3. A code replaces the standard allowance. Omit it for the standard allowance and taper.
benefitsNoTaxable benefits in kind per year, in pounds: added to taxable pay for income tax, not charged employee National Insurance.
scotlandNotrue for Scottish income tax bands. Default false (England, Wales, Northern Ireland).
pensionPctNoYour pension contribution as a percent of salary.
pensionTypeNoHow the pension is taken: salary sacrifice (default, lowers tax and National Insurance), net pay arrangement (lowers tax only) or relief at source.
marriageAllowanceNoMarriage Allowance when no taxCode is sent: receive (tax reduced by up to £252) or give (£1,260 of allowance). Ignored when taxCode is sent.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile needs no restating. The description adds the useful versioning constraint (2026/27 rules) and Scottish band support, but says nothing about whether results are estimates, which assumptions apply, or what 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?

A single front-loaded noun phrase with zero filler and the most decision-relevant facts (UK, tax year, Scotland) first. It is a fragment rather than structured prose, which limits it slightly, but nothing is wasted.

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 an 8-parameter tax engine with no output schema, yet the description gives no indication of what comes back (net pay, tax breakdown, NI split) or of any modelling assumptions. Given the complexity and the ambiguity against numerous tax siblings, one line is insufficient.

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 rich per-parameter text for taxCode, pensionType, marriageAllowance, benefits and bonus, so the schema carries the semantics. The description itself mentions no parameters at all, 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.

Purpose4/5

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

States a specific domain and resource (UK income tax plus Class 1 National Insurance) and pins the tax year (2026/27) plus Scottish rate support. It is clearly distinguishable from the non-UK tax siblings by the word 'UK', though it never names those siblings explicitly.

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 when-to-use / when-not-to-use guidance and no routing to alternatives such as converters_paycheck, converters_self_employment_tax, converters_state_tax, or converters_india_income_tax/us_income_tax. The agent must infer from the phrase 'UK income tax' alone that this is the right calculator.

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

converters_unitsB
Read-onlyIdempotent
Inspect

Unit converter: 14 categories and over 130 units with exact factors

NameRequiredDescriptionDefault
toYesUnit id to convert to.
fromYesUnit id to convert from, for example gal_us, km_h, psi, kwh (see units-list for the ids and aliases).
valueYesThe number to convert.
categoryYeslength, weight, temperature, volume, area, speed, pressure, energy, power, time, data_transfer, angle, fuel_economy or cooking. List the units of each with /v1/converters/units-list.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful scope and precision ('exact factors'), but does not disclose return format, error behavior, or other operational details; no contradiction 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?

The description is a single front-loaded sentence with no filler. Every phrase contributes scope or precision: category count, unit count, and exact conversion factors.

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 schema fully describes all required parameters and the annotations cover safety behavior, so the brief description is largely sufficient. It could still mention the return value or point to units-list, but those gaps are minor given the structured data.

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 fully documents all four required parameters. The description adds no parameter-level meaning beyond the schema, making the baseline score of 3 appropriate.

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

Purpose4/5

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

The description clearly states the resource and scope: a unit converter with 14 categories, 130+ units, and exact factors. It does not differentiate itself from specific siblings such as convert_length or convert_weight, 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?

The description states only what the tool does, not when to use it versus alternatives. No routing guidance is given for sibling tools like convert_length, convert_temperature, or converters_units_list, even though the schema mentions units-list.

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

converters_units_listA
Read-onlyIdempotent
Inspect

Unit converter: the units of each category, with ids, symbols, aliases and a US, imperial or metric tag

NameRequiredDescriptionDefault
categoryNoOnly this category (for example volume). Leave out for every category.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare this is a read-only, idempotent, non-open-world operation, so the safety burden is low. The description adds useful output context beyond annotations by naming the returned fields (ids, symbols, aliases, US/imperial/metric tag), which helps an agent know what the listing 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?

It is a single front-loaded sentence with no padding, and the output-field list is helpful. The colon construction and 'Unit converter:' prefix make it slightly less crisp than a direct 'Lists all units by category' phrasing.

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

Completeness4/5

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

For a simple read-only listing tool with no output schema, the description supplies the essential return-content summary and relies on annotations for the safety profile. The category-filter semantics are fully covered by the schema, so only the sibling distinction is notably absent.

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 category parameter is fully documented in the schema, including the 'leave out for every category' behavior. The tool description adds no additional parameter meaning, 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 states the resource precisely: it lists the units of each category along with ids, symbols, aliases and measurement-system tags. The verb is implicit ('Unit converter:' rather than 'List units'), and it never names the sibling converters_units, so an agent must infer the listing-vs-converting distinction.

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 only implied by the phrase 'the units of each category' and the optional category parameter; there is no explicit statement of when to call this versus converters_units. The agent can infer it is a discovery step before conversion, but nothing in the description confirms or excludes that.

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

converters_us_income_taxB
Read-onlyIdempotent
Inspect

US federal income tax estimate with 2026 brackets, filing status, deductions, FICA and state tax

NameRequiredDescriptionDefault
stateNoWith grossIncome: US state (two-letter code or name) to add that state's 2026 income tax.
deductionNoWith grossIncome. Default standard (2026 amount for the filing status).
grossIncomeNoGross income before deductions (wages or profit). The standard or itemized deduction is applied for you, and FICA and optional state tax are added. Send this OR taxableIncome.
filingStatusNoFederal filing status. Default single.
selfEmployedNoWith grossIncome: treat the income as self-employment profit (self-employment tax instead of employee FICA).
taxableIncomeNoIncome after deductions. Send this OR grossIncome.
preTaxDeductionsNoWith grossIncome: yearly pre-tax deductions such as traditional 401(k). Lowers income tax but not FICA.
itemizedDeductionsNoWith deduction 'itemized': the total of your itemized deductions.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, covering the safety profile. The description adds valuable context about what the calculation includes (2026 brackets, FICA, state tax), helping an agent understand the scope 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 a single, front-loaded phrase with no wasted words. It could be slightly more structured as a complete sentence, but it efficiently conveys the core purpose.

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 eight optional parameters and no output schema, the description should explain what the tool returns (e.g., total tax, breakdown). It lists calculation components but does not describe the output format, leaving a gap for an agent interpreting results.

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 eight parameters are fully documented in the schema. The description only reiterates some fields (filing status, deductions, state tax) without adding syntax or format details 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.

Purpose4/5

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

States a specific resource (US federal income tax estimate) and lists key features (2026 brackets, filing status, deductions, FICA, state tax). However, it does not explicitly differentiate from sibling tools like converters_state_tax or converters_paycheck, so an agent might need to infer the distinction.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description merely lists features without stating conditions, exclusions, or which sibling to choose for related calculations.

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

converters_vat_gstC
Read-onlyIdempotent
Inspect

VAT and GST calculator with a country rate table

NameRequiredDescriptionDefault
linesNoInvoice lines at different rates: returns a subtotal per rate (byRate) and a grand total. Use instead of amount.
amountNoThe amount, in any currency. Send this, or vatAmount, or lines.
countryNoCountry name (for example Germany, United Kingdom, Australia, Singapore, UAE). Looks up the standard VAT/GST rate. Canada has one entry per province group, e.g. 'Canada - Ontario HST'. The error for an unknown name lists every supported entry.
ratePctNoVAT/GST rate in percent. Required unless country is sent. Takes priority over country.
vatAmountNoThe VAT amount shown on a receipt: returns the net and gross it implies at the rate (needs a rate above 0). Use instead of amount.
amountIncludesTaxNotrue when amount already includes the tax (the tax is taken out of it).

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered structurally. The description adds only 'with a country rate table', which conveys almost nothing beyond that—it doesn't mention that unknown country names throw an error listing supported entries, or that ratePct overrides country.

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?

It is a single short phrase, so nothing is wasted, but it is under-specified rather than concise—more of a tagline than a usable definition for a 6-parameter calculator.

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

Completeness2/5

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

With no output schema, the description would be the only place to explain return shape (per-rate subtotals, net/gross derivation for vatAmount), and it says nothing. The rich schema compensates on inputs, but the overall definition is too thin for a multi-mode calculator.

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 carries a detailed description (including mutual exclusivity of amount / vatAmount / lines and the ratePct priority rule). The prose description adds no parameter meaning at all, so the baseline 3 for fully-documented schemas applies.

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

Purpose3/5

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

The description names the resource ('VAT and GST calculator') and adds a qualifier about a country rate table, so the basic function is inferable. However, it never distinguishes this from the close sibling calculate_sales_tax (or converters_state_tax), leaving an agent unsure which calculator to pick for a given tax computation.

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 when-to-use guidance, no exclusions, and no mention of alternatives such as calculate_sales_tax. The agent gets no routing help beyond the tool name itself.

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

converters_vat_ratesA
Read-onlyIdempotent
Inspect

VAT and GST rates by country: standard and reduced rates with a data version and as-of date

NameRequiredDescriptionDefault
regionNoOnly the countries of one region.
countryNoA country name, or a list of names (for example Germany, UK, Canada - Ontario HST). Leave out for the whole table.
currencyNoOnly the countries that use this currency code, for example EUR.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond annotations by disclosing that results carry a data version and as-of date, which helps an agent reason about data freshness; it does not cover source, update frequency, or return volume, preventing a 5.

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 resource, included rate types, and freshness metadata. Every clause earns its place, with no redundant or vague phrasing.

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 read-only lookup with full schema documentation and no output schema, the description gives enough information about what the data contains (standard/reduced rates, version, as-of date). It remains slightly incomplete because it does not clarify the return shape or how it differs from the similarly named VAT/GST sibling.

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 region, country, and currency are fully documented in the schema. The description restates the country-oriented nature of the data but adds no syntax, format, or filtering nuance beyond what the schema already provides, matching the baseline of 3 for high schema coverage.

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

Purpose4/5

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

The description clearly states the resource and content: VAT and GST rates by country, including standard and reduced rates plus version/as-of metadata. It distinguishes the tool from most siblings but does not differentiate it from the closely named converters_vat_gst sibling, leaving ambiguity about which one retrieves rates versus calculates them.

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 reference-data nature of the tool, but the description gives no explicit when-to-use guidance, prerequisites, or comparison to alternatives such as converters_vat_gst or converters_exchange_rates. An agent can infer it is for looking up rates, but not confidently choose it over the sibling without inspecting schemas.

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

converters_vat_validateA
Read-onlyIdempotent
Inspect

EU VAT number validation: layout check per member state plus a live VIES lookup

NameRequiredDescriptionDefault
countryNoTwo-letter country code when vatNumber has no prefix (Greece is EL).
vatNumberYesThe EU VAT number, with or without the two-letter prefix and with spaces or dots, for example DE123456789 or 'DE 123.456.789'.
offlineOnlyNotrue checks only the number layout and skips the live VIES lookup.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive; the description adds the material behavioral fact that a live external VIES call occurs unless skipped, which matters for latency and availability. Note a mild tension with openWorldHint=false, since a live VIES lookup does reach an external service, but this is not a direct contradiction of the stated purpose.

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

Conciseness5/5

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

A single front-loaded clause with zero filler; the mechanism is stated before any caveat, which is exactly what an agent needs for triage.

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 says nothing about what a result looks like (valid/invalid, VIES status, error when VIES is unreachable) or how failures are surfaced. For a validator this is a noticeable gap, though the tool is simple enough that the core contract is 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 country, vatNumber formatting and offlineOnly are already documented. The description's phrase 'layout check per member state' only loosely reinforces the country parameter and adds no syntax or format detail 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?

States a specific verb (validate) and resource (EU VAT number) and names the two-stage mechanism (member-state layout check + live VIES lookup). This cleanly separates it from siblings like converters_vat_rates and converters_vat_gst, which compute tax rather than verify identifiers.

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 context (checking an EU VAT number's format and existence) but never states when to prefer it or what to do for non-EU numbers. The offlineOnly hint in the schema, not the description, is what tells an agent how to degrade gracefully.

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

convert_lengthC
Read-onlyIdempotent
Inspect

Unit converter (length)

NameRequiredDescriptionDefault
toYes
fromYes
valueYes

TDQS

C2.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing on top of that — no note on precision/rounding of results, no mention of invalid or negative value handling, and no return-format context.

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?

Three words with no waste and the resource is front-loaded, but the brevity comes from omission rather than efficiency — there is no substantive content to be concise about.

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 inherently simple: three required parameters, two constrained by enums, no output schema, and annotations covering the safety profile. Given that complexity level the description is just barely sufficient, though it leaves an agent to infer conversion direction and result precision entirely from the schema.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate, but it says nothing about value, from, or to. The two enums do make the unit vocabulary self-evident, which limits the damage, yet the description contributes zero semantic meaning (e.g., no clarification that value is in the 'from' unit).

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

Purpose2/5

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

"Unit converter (length)" essentially restates the tool name convert_length; the parenthetical only echoes the length dimension. It does implicitly separate this from convert_weight and convert_temperature, but adds no verb, scope, or supported-unit information beyond what the name already conveys.

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 when-to-use guidance, no mention of the sibling converters (convert_weight, convert_temperature, converters_file_size), and no note on constraints such as which unit systems are supported. The agent must infer everything from the name and the enum lists.

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

convert_temperatureC
Read-onlyIdempotent
Inspect

Unit converter (temperature)

NameRequiredDescriptionDefault
toYes
fromYes
valueYes

TDQS

C2.1/5.0
Behavior2/5

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

The description adds nothing beyond annotations, which already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false. Nothing is contradicted, but no extra context (rounding, precision, formula, output units) is contributed.

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?

Three words, front-loaded and waste-free, but the brevity comes from under-specification rather than disciplined editing. There is no structure to speak of.

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 trivial, fully annotated, closed-world computation the description is not dangerously incomplete, but it never states what is returned (a number in the target unit) or how conversions are rounded, and gives no parameter meaning at all.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, and it does not — it never mentions value, from or to. The enums C/F/K in the schema are self-explanatory, but meaning such as whether `value` is in the `from` unit or output formatting is left entirely implicit.

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

Purpose2/5

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

"Unit converter (temperature)" essentially restates the tool name convert_temperature and the annotation title "Convert Temperature". The parenthetical does implicitly separate it from convert_length, convert_weight and convert_currency, but no verb/resource/scope beyond the name is offered.

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 when-to-use, when-not-to-use or alternative guidance is given. An agent must infer from the name alone that this handles Celsius/Fahrenheit/Kelvin while the many other converters handle other quantities.

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

convert_timestampD
Read-onlyIdempotent
Inspect

Timestamp converter

NameRequiredDescriptionDefault
inputYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds nothing beyond that — no mention of accepted formats, timezone assumptions, or output shape, which are the behaviors that actually matter for a converter.

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

Conciseness2/5

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

Two words are technically concise, but this is under-specification rather than efficiency — nothing is front-loaded because there is nothing to front-load.

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

Completeness2/5

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

With no output schema and no parameter documentation, the description is the only place format and return-value expectations could be stated, and it says nothing. For a union-typed input whose meaning is ambiguous, more is required.

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

Parameters1/5

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

The single parameter is named "input" with 0% schema description coverage and a union type of string|number. The description does not explain what the input should be (epoch seconds/ms, ISO string, date string) or how the number vs string cases differ, leaving the agent to guess.

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

Purpose2/5

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

"Timestamp converter" essentially restates the tool name and adds no specificity. It does not say which conversion direction or formats are supported (unix epoch to ISO 8601, ISO to epoch, human-readable dates), which matters for an agent choosing among many converter 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?

No guidance on when to use this versus siblings such as apply_timezone_offset or the converters_* family. The agent must infer the use case entirely from the name.

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

convert_weightC
Read-onlyIdempotent
Inspect

Unit converter (weight)

NameRequiredDescriptionDefault
toYes
fromYes
valueYes

TDQS

C2.4/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety and determinism are covered structurally. The description adds no behavioral context beyond those annotations, such as expected input precision, rounding behavior, or whether the conversion is purely numeric.

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 definition is extremely concise and front-loaded, with zero wasted words. However, it is arguably too compressed for a tool with three required parameters, so the brevity reflects under-specification rather than optimal conciseness.

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

Completeness2/5

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

Given the simple conversion operation and rich annotations, the definition still omits basic parameter context and does not clarify the expected input shape. For a tool with 0% schema description coverage, the description should do more to make the call semantics self-evident.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not mention the value, from, or to parameters. While the schema's enums for from/to communicate the allowed units, the description does not compensate for the lack of parameter documentation or clarify that value is the numeric quantity to convert.

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

Purpose3/5

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

The phrase 'Unit converter (weight)' does identify the resource domain as weight and distinguishes it from convert_length or convert_temperature. However, it is little more than a restatement of the tool name and title, with no explicit verb describing the conversion operation or its inputs.

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 this tool versus sibling converters such as convert_length, convert_currency, or convert_temperature. The description does not mention any alternatives or exclusions, leaving usage entirely implicit.

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

csv_to_pptxA
Read-onlyIdempotent
Inspect

Turn a CSV file into an editable PowerPoint (.pptx, base64) of table slides from freedailypro: a cover slide, then the header and up to rowsPerSlide (default 12, max 40) rows on each slide, titled 'Title (1 of 3)'. The first row holds the column names unless header is false. The delimiter (comma, semicolon or tab) is found from the first line. At most 12 columns and 200 slides; cells are kept as plain text. Themes clean, dark, corporate, warm, minimal, or a brand.

NameRequiredDescriptionDefault
csvYesThe CSV text (up to 10 MB)
brandNoA theme made from a brand colour and fonts. Replaces theme.
themeNoBuilt-in look. Default clean. Ignored when brand is given.
titleNoDeck and slide title. Default Data.
headerNoThe first row holds column names. Default true.
delimiterNoOne character, or tab. Default: detected.
titleSlideNoAdd a cover slide with the title and the table size. Default true.
rowsPerSlideNoData rows per slide. Default 12.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive, idempotent, and closed-world behavior, so the safety profile is covered. The description adds substantial context beyond that: it explains the generated cover slide, slide titling, header-row handling, delimiter auto-detection, cell plain-text treatment, and hard limits of 12 columns and 200 slides. It could go slightly further on error behavior or exact base64 packaging, but it is already rich.

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 purpose and then packs in useful constraints without redundancy. It is a single dense sentence, so structure could be improved with paragraph breaks, but nearly every clause earns its place; 'from freedailypro' is the only phrase that feels extraneous.

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 conversion with eight parameters, a nested object, and no output schema, the description covers purpose, output format, slide structure, limits, defaults, and theme choices. It does not describe return packaging details beyond 'base64' or error cases, but combined with the fully documented input schema it is largely complete.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all eight parameters, including the nested brand object and the theme enum. The description restates a few defaults and constraints (rowsPerSlide default 12/max 40, header false handling, delimiter detection, theme list) but adds little beyond what the schema already provides, making the baseline 3 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: 'Turn a CSV file into an editable PowerPoint (.pptx, base64) of table slides.' It clearly distinguishes this from siblings like json_to_pptx or markdown_to_pptx by naming the input format and output artifact, and it specifies the slide structure up front.

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 usage is implied by the purpose: if you have CSV text and want a PPTX table deck, use this tool. However, the description does not explicitly say when to prefer this over sibling tools such as json_to_pptx, markdown_to_pptx, or text_csv, nor does it state 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.

decode_jwtA
Read-onlyIdempotent
Inspect

Jwt decoder — header + payload only, no signature verification

NameRequiredDescriptionDefault
tokenYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive behavior, but the description adds the critical behavioral limitation that only header and payload are decoded and the signature is not verified. It does not mention malformed-token handling, but for a simple decoding utility this is a meaningful disclosure beyond structured fields.

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 definition is a single front-loaded sentence with no wasted words. It communicates the core behavior and the most important caveat efficiently.

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 utility with annotations and no output schema, the description is nearly sufficient: it conveys that output is limited to header and payload and that signatures are not verified. It could be improved by briefly describing the token input or malformed-token behavior, but no major context is missing.

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?

There is one required parameter, and schema description coverage is 0%, so the description should compensate by explaining the expected token format or constraints. Instead, it only implies a JWT input through the tool name and provides no additional 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 states a specific verb and resource (JWT decoder) and immediately defines scope: header and payload only, no signature verification. An agent can distinguish decoding from verification 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 Guidelines4/5

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

The phrase 'no signature verification' gives a clear usage caveat and effectively excludes security-validation use cases. However, it does not explicitly name an alternative tool or describe the positive use case in more detail, so it falls short of fully explicit when/when-not guidance.

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

describe_cronA
Read-onlyIdempotent
Inspect

Cron builder — describe a 5-field cron expression

NameRequiredDescriptionDefault
expressionYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile needs no restating. The description adds the '5-field' constraint, which usefully signals that 6-field/second-based expressions are out of scope, but says nothing about behavior on malformed input or what the returned description 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?

A single short clause, front-loaded with the operation and immediately narrowed by the format constraint. Nothing is wasted.

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

Completeness3/5

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

For a one-parameter read-only utility, the description covers what the tool does and the expected input shape. It omits the return value form (plain-English phrase vs. structured fields) and the behavior on invalid expressions, and there is no output schema to fill those 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?

One parameter with 0% schema description coverage, so the description must carry the load. '5-field cron expression' does add real meaning — it tells the agent the expected format and implicitly excludes macros like @daily — but there is no example, no statement of what the parameter is named, and no note on validation or error handling.

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 and resource: 'describe a 5-field cron expression'. The 'Cron builder' prefix is slightly misleading (builder implies construction, not description), but the em-dash clause clarifies the actual operation, and no sibling tool covers cron at all.

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 verb — call this to convert a cron expression into prose. There are no exclusions, prerequisites, or alternatives named, though the sibling list contains no competing cron tool to disambiguate against.

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

diff_textA
Read-onlyIdempotent
Inspect

Diff checker — line-oriented text diff. Same result as POST /v1/security/diff and /v1/text/diff: lines of type equal, add or remove with line numbers, plus added, removed, equal and changes counts.

NameRequiredDescriptionDefault
textAYesOriginal text.
textBYesChanged text.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine value by describing the result shape (equal/add/remove lines with line numbers plus added/removed/equal/changes counts), which is not available anywhere else since there is no output schema. It omits limits such as input size caps or timeout 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?

Front-loaded with the core identity 'Diff checker — line-oriented text diff' and then the result contract in a single compact sentence. The API endpoint references are slightly incidental but do establish parity with the public API, so they earn their 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 two-string, read-only utility with no output schema, the description covers purpose and return structure adequately. Only input-size limits and the absence of a sibling-alternative pointer keep it from being 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% with 'Original text.' and 'Changed text.', so the schema already carries parameter meaning. The description adds no further semantics about textA versus textB beyond the name-level orientation, 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?

States a specific verb and resource: line-oriented text diff over two text inputs. It is clearly distinguishable from nearby siblings like text_similarity or find_and_replace by the word 'diff', but it never names those siblings, so differentiation 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 comparison intent is implied by 'diff' and by the two required inputs, and the mention of /v1/text/diff clarifies the domain. However there is no explicit when-to-use, when-not-to-use, or pointer to text_similarity for fuzzy matching, which is the main ambiguity an agent would face.

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

ecommerce_etsy_listing_checkC
Read-onlyIdempotent
Inspect

Etsy listing checker

NameRequiredDescriptionDefault
tagsNoTags separated by commas, semicolons or new lines. Errors: more than 13 tags, a tag over 20 characters, a repeated tag, a tag starting with a hyphen or apostrophe.
titleYesThe listing title. Errors: more than 140 characters; the characters % : & used more than once each; any of $ ^ \ and the backtick. Everything else is advice.

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no statement that it returns validation errors versus a pass/fail, and no note that only title and tags are inspected.

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

Conciseness2/5

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

Three words, but the brevity comes from under-specification rather than economy. Nothing is front-loaded because there is nothing substantive to front-load.

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?

A simple two-parameter validator with a fully documented schema and no output schema, so little is strictly required. Still, the description never states that the tool reports rule violations back to the caller, which is the whole point of 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% and the parameter descriptions are unusually rich, enumerating exact error conditions (tag count, character limits, forbidden characters). The description contributes nothing on top, so the baseline 3 applies.

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

Purpose2/5

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

"Etsy listing checker" essentially restates the tool name and title. It does not say what is being checked (title/tag compliance against Etsy's rules) or what a check produces. An agent cannot distinguish this from a hypothetical listing creator or optimizer on name alone.

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

Usage Guidelines1/5

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

No guidance on when to use this versus alternatives, no prerequisites, no mention that it validates rather than creates. The agent must infer everything from the schema.

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

estimate_body_fatB
Read-onlyIdempotent
Inspect

Body fat calculator — US Navy style estimate

NameRequiredDescriptionDefault
sexYes
hipCmNo
neckCmYes
waistCmYes
heightCmYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds that this is an 'estimate' using the 'US Navy' formula, which gives useful context about the method's approximate nature but does not explain output format, accuracy, or 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, front-loaded phrase with zero filler. It communicates the core purpose efficiently.

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 5-parameter health calculator with no output schema and no schema descriptions, the definition is too thin. It omits important context such as the conditional requirement of hipCm for females, the expected return value (body fat percentage), and any accuracy caveats.

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

Parameters2/5

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

Schema description coverage is 0%, and the description provides no parameter-level guidance. 'US Navy style' implies circumference-based inputs, but it does not explain which parameters are required, that hipCm is needed for females, or what the values represent beyond the self-explanatory schema names.

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

Purpose4/5

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

The description gives a specific resource ('Body fat') and a concrete method ('US Navy style estimate'), clearly distinguishing it from siblings like calculate_bmi or calculate_ideal_weight. It does not explicitly name alternatives, but the purpose is unambiguous.

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

Usage 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 this tool versus other body-composition calculators, no prerequisites, and no exclusions. The only hint is the implied use of the tool name itself.

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

estimate_password_strengthD
Read-onlyIdempotent
Inspect

Password strength

NameRequiredDescriptionDefault
passwordYes

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: it does not say what is returned (score, entropy, warnings), whether the password is stored or logged, or how strength is judged.

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

Conciseness2/5

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

Two words is technically short, but this is under-specification rather than conciseness. There is no front-loaded statement of action or scope for the agent to anchor on.

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

Completeness1/5

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

With no output schema, no parameter descriptions, and no behavioral detail in the annotations beyond safety flags, the description leaves the agent unable to predict the return value or confirm the input contract. It is essentially a title, not a usable definition.

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?

There is one required parameter (password) with 0% schema description coverage, so the description must compensate and does not. It never mentions the password input, expected format, or handling of non-ASCII/empty values.

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

Purpose2/5

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

The description is just the noun phrase 'Password strength', which restates the tool name (estimate_password_strength) rather than stating what it does. It never says it evaluates/estimates, and gives nothing to separate it from the nearby generate_password sibling.

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 indication of when to use this versus generate_password (which creates passwords) or any other security tool. The context is only loosely inferable from the name itself, so the description provides no routing guidance.

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

extract_emailsC
Read-onlyIdempotent
Inspect

Email extractor

NameRequiredDescriptionDefault
textYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, carrying the safety profile. The description adds nothing beyond that — no mention of deduplication, output ordering, format of the extracted emails, or handling of malformed input.

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?

Two words are maximally front-loaded with zero waste, which is fine structurally, but the extreme brevity is under-specification rather than disciplined conciseness for a tool whose behavior and input semantics are otherwise undocumented.

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?

There is no output schema, so the description should convey what comes back (a list of addresses? first match only? deduplicated?). Combined with a 0%-described parameter and no behavioral notes, the definition leaves too much for the agent to guess.

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

Parameters2/5

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

Schema description coverage is 0% for the single required parameter 'text', so the schema alone only tells the agent it's a string. The description does not state that the parameter is the text to scan for email addresses, nor give format/length guidance, leaving the agent to infer the parameter's meaning.

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

Purpose2/5

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

The description 'Email extractor' merely restates the tool name/title in different words; it's a tautology rather than a specific verb+resource statement. It doesn't distinguish the tool from siblings like extract_urls, nor does it indicate scope (e.g., extracting from arbitrary text vs. a URL or 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?

No indication of when to use this tool, when not to, or which sibling to pick if the text might contain URLs or other entities. Usage is only implied by the name.

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

extract_urlsC
Read-onlyIdempotent
Inspect

Url extractor

NameRequiredDescriptionDefault
textYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered externally. The description adds nothing beyond that - no note on what counts as a URL, deduplication, trailing punctuation handling, or return format.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness - the entire description is three words and carries no front-loaded detail an agent could act on.

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

Completeness2/5

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

With no output schema and no parameter documentation, the agent cannot tell what the return value looks like (list? array of strings? count?) or how URLs are delimited. For a text-parsing tool this leaves a real gap.

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

Parameters2/5

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

Schema description coverage is 0%: the single required parameter "text" is undocumented in both schema and description. The description should say the input is the raw text to scan, but it does not compensate at all.

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

Purpose2/5

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

"Url extractor" merely restates the tool name in prose form; it names no verb like "find" or "extract from text" and gives no scope. Nothing distinguishes it from siblings such as extract_emails, which is the nearest analogue.

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 this versus extract_emails, url_encode_decode, or text_similarity. The only inference available is from the name itself, which the description just echoes.

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

fancy_textC
Read-onlyIdempotent
Inspect

Fancy font generator — unicode styles

NameRequiredDescriptionDefault
textYes
styleYes
intensityNoZalgo only: 1 (light) to 3 (heavy), default 2

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond the title: it does not say what the tool returns (transformed string vs. list of styled variants), what the achievable styles are, or how the Zalgo intensity interacts with style selection.

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?

It is a single short fragment with no padding, so it is concise, but the compression goes too far — the one line is a label rather than a usable specification, and there is no front-loaded guidance beyond the category name.

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

Completeness2/5

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

With 3 parameters, a required untyped 'style' argument, and no output schema, the description carries the full burden of explaining inputs and results, and it does neither. An agent cannot reliably call this tool without guessing valid style names or the return shape.

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

Parameters2/5

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

Schema description coverage is only 33%: 'text' and the required 'style' parameter are completely undocumented in both schema and description, and 'style' is a free-form string with no enum, so the agent has no way to know valid values. The word 'unicode styles' gestures at the style parameter but supplies no vocabulary, and nothing is said about 'text' at all.

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

Purpose3/5

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

The fragment 'Fancy font generator — unicode styles' does convey a verb-like action (generate) and resource (Unicode-styled text), but 'fancy font' is loose terminology and nothing distinguishes it from nearby siblings like invisible_text, text_emoji_unicode, reverse_text or case_convert, which an agent could easily confuse it with.

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 statement of when to use this tool, when not to, or which sibling to prefer for adjacent tasks (e.g. invisible_text for blank output, text_emoji_unicode for emoji). Usage must be inferred entirely from the name.

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

find_and_replaceD
Read-onlyIdempotent
Inspect

Find replace

NameRequiredDescriptionDefault
findYes
textYes
replaceYes
useRegexNo
replaceAllNo
caseSensitiveNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered elsewhere. The description adds nothing beyond that — no statement about whether it returns the modified text, how many replacements occur, or how regex mode changes behavior.

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

Conciseness2/5

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

Two words is not concise but under-specified; there is no front-loaded statement of intent because there is no content. Brevity here costs the agent all operational guidance rather than saving it anything.

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

Completeness1/5

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

For a 6-parameter text transformation with regex and replacement-count options, the description supplies nothing an agent needs: it cannot tell whether the operation is literal or pattern-based, whether all matches or the first are replaced, or whether the input text is returned modified. Annotations cover only the safety profile, leaving the functional contract absent.

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

Parameters1/5

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

Six parameters with 0% schema description coverage, and the description mentions none of them. Critical semantics are entirely unstated, notably the find/replace/text relationship, the useRegex flag (pattern vs. literal), replaceAll vs. first-occurrence default, and caseSensitive behavior.

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

Purpose2/5

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

"Find replace" merely restates the tool name and adds no verb+resource specificity beyond the identifier itself. It does not distinguish the tool from siblings like pptx_find_replace, diff_text, or test_regex, so an agent gets no signal about scope (plain text strings vs. files).

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

Usage Guidelines1/5

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

There is no when-to-use, when-not-to-use, or alternative routing information at all. With close siblings such as pptx_find_replace (document-level) and test_regex present, the absence of any disambiguation is a real hazard.

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

format_jsonB
Read-onlyIdempotent
Inspect

Json formatter — validate, pretty-print or minify

NameRequiredDescriptionDefault
textYes
indentNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds only the mode list; it says nothing about what happens on invalid JSON (thrown error vs. structured validation result), which is the key behavioral question for a validator.

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 line with no waste; the resource comes first and the modes follow. It is efficient, though the terseness trades away the mode-to-parameter mapping an agent would benefit from.

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

Completeness2/5

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

With only two parameters, no output schema, and a pure-transform tool, the description should state what is returned (formatted string? validation verdict? error text?) and how invalid input is surfaced. Neither is covered, leaving the most operationally important detail unspecified.

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 0%, so the description has to carry weight; it partially does by naming 'minify', which maps to the `indent` const value of "minify", and 'pretty-print' implying a numeric indent. However, it never explains the 0-8 indent range, nor how 'validate' mode is selected (apparently by omitting indent), leaving the relationship between mode and `indent` to inference.

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 resource (JSON) and three concrete operations (validate, pretty-print, minify), so an agent knows exactly what the tool does. It doesn't distinguish itself from the adjacent sibling minify_code or clarify scope boundaries, but the verb+resource pairing is unambiguous.

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

Usage Guidelines3/5

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

The three verbs imply the modes available, which gives implied usage guidance, but there is no explicit when-to-use versus alternatives (e.g., minify_code for source code, diff_text for comparison). No exclusions or prerequisites are stated.

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

generate_captionsC
Read-onlyIdempotent
Inspect

Social caption generator — template-based, not an LLM

NameRequiredDescriptionDefault
toneNo
topicYes
platformYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety and determinism are covered. The description adds that generation is template-based rather than LLM-based, which is useful behavioral context about output style. It does not describe what the returned captions look like or how many are produced.

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 a single short sentence with no wasted words and is front-loaded. However, it is under-specified for a tool with three inputs and zero schema parameter descriptions; conciseness comes at the cost of necessary detail.

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

Completeness2/5

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

With no output schema, the description should clarify the return shape or number of generated captions, but it does not. Annotations cover safety, but the description leaves param usage and output expectations incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, and all three parameters (topic, platform, tone) are undocumented in the schema. The description does not mention any parameter, so it fails to compensate for the missing semantics. The agent must infer that 'social' relates to platform and that tone/topic are accepted.

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: 'Social caption generator'. It also clarifies the implementation approach ('template-based, not an LLM'), which helps distinguish output style. However, it does not differentiate from related siblings like hashtags or text_product_description.

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 this tool versus alternatives such as hashtags or text_product_description. The only usage cue is that it is template-based rather than LLM-generated, which does not tell an agent when to select it.

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

generate_hashB
Read-onlyIdempotent
Inspect

Hash generator — md5, sha1, sha256, sha384, sha512

NameRequiredDescriptionDefault
textYes
algorithmNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond repeating the algorithm list, but it does not contradict the annotations either — a minimum-viable 3 for a tool whose behavior is already well characterized.

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 clause with no filler. It is efficient, though the enumerated algorithm list is redundant with the schema enum and consumes the only available space that could have carried missing behavioral detail.

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 should have stated the return format (e.g. lowercase hex) and the default algorithm when `algorithm` is omitted. For a simple two-parameter utility the current text is adequate to call the tool, but a caller still has to guess at the default and output encoding.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of explaining both parameters. It restates the `algorithm` enum (already machine-readable in the schema) but says nothing about `text` (encoding expectations) or which algorithm is used when `algorithm` is omitted, even though only `text` is required.

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+resource ('Hash generator') and enumerates the supported algorithms, which distinguishes it clearly from nearby siblings like generate_uuid, generate_password, and decode_jwt. It stops short of clarifying scope relative to those siblings, but the purpose is unambiguous.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of alternatives such as generate_uuid or base64, and no prerequisites stated. An agent can infer this is a generic hashing utility, but the description provides no routing help.

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

generate_loremC
Read-onlyIdempotent
Inspect

Lorem ipsum generator

NameRequiredDescriptionDefault
paragraphsNo
startWithLoremNo
wordsPerParagraphNo

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds nothing further — no note about default output shape, whether output is deterministic per call, or how the generated text is returned, so it contributes zero behavioral context of its own.

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?

It is a single short phrase with no wasted words and is fully front-loaded, but the brevity comes from under-specification rather than disciplined editing. There is room for one or two sentences of real content.

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

Completeness2/5

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

The tool itself is simple and annotations plus schema bounds cover safety and constraints, but with no output schema and three undocumented parameters, the description should at minimum state defaults and the output format. As written, an agent must guess how to invoke it meaningfully.

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

Parameters2/5

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

Schema description coverage is 0% across three parameters (paragraphs, startWithLorem, wordsPerParagraph). The names are fairly self-explanatory and the schema carries min/max bounds, but the description supplies no meaning, defaults, or interaction notes (e.g. what startWithLorem does to the first paragraph), so it fails to compensate for the coverage gap.

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

Purpose2/5

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

The description "Lorem ipsum generator" is essentially a restatement of the tool name generate_lorem; it names the output artifact but adds no verb, scope, or differentiating detail. An agent can infer placeholder-text generation, but nothing beyond the name is conveyed.

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 indication of when to use this tool, when not to, or which siblings it might be confused with (e.g. text_banner_copy or text_ascii_art which also produce filler/formatting text). Usage is only implied by the tool name.

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

generate_meta_tagsC
Read-onlyIdempotent
Inspect

Meta tag generator — Open Graph + Twitter

NameRequiredDescriptionDefault
urlNo
typeNo
imageNo
titleYes
siteNameNo
descriptionYes
twitterCardNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description contributes the useful scope constraint that only OG + Twitter tags are produced (not general meta like canonical or robots), but it says nothing about the output form — HTML snippet vs. JSON — leaving the main behavioral question unanswered.

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?

It is a single front-loaded clause with zero waste, but the brevity is under-specification rather than disciplined conciseness for a seven-parameter generator.

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

Completeness2/5

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

No output schema exists, so the description carries the burden of explaining what is returned — a rendered <meta> block, an object, or plain text — and it does not. For a 7-parameter generation tool, that leaves an agent unable to predict the result.

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?

Seven parameters with 0% schema description coverage, and the description explains none of them. A knowledgeable agent can map title/description/url/image/siteName/twitterCard onto the OG/Twitter spec from the hint 'Open Graph + Twitter', but nothing clarifies the untyped 'type' field or the twitterCard enum values, so the description does not compensate for the coverage gap.

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 — meta tag generation — and scopes it to Open Graph plus Twitter tags. That distinguishes it in intent from siblings like schema_jsonld or generate_robots_sitemap, though it does not name those alternatives explicitly.

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 when-to-use guidance, no prerequisites, and no pointer to a sibling for adjacent web-metadata tasks (JSON-LD, robots/sitemap). Usage is only inferable from the tool name itself.

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

generate_passwordC
Read-onlyIdempotent
Inspect

Password generator — cryptographically secure password

NameRequiredDescriptionDefault
lengthNo
numbersNo
symbolsNo
lowercaseNo
uppercaseNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered, and the description usefully adds that the RNG is cryptographically secure. However, it omits the behaviors that actually matter here: what defaults apply when called with no arguments, and that each call returns a different value (the idempotentHint=true annotation is arguably misleading for a random generator, and the description does not correct it).

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

Conciseness4/5

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

Two clauses, front-loaded with the resource and the security property; nothing is wasted. It is arguably too terse rather than bloated, but structurally sound.

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

Completeness2/5

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

With no output schema and five optional, undocumented parameters, the agent cannot predict the default output shape, length, or character set of the generated password. For a tool designed to be called with zero arguments, the default behavior is the single most important missing fact.

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

Parameters2/5

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

Schema description coverage is 0% across 5 parameters, so the description carries the full burden, yet it mentions none of them — not length, nor the character-class toggles. Since all parameters are optional, the critical unknown is the default password composition and length, which is documented nowhere. Only the self-explanatory parameter names prevent a lower score.

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+resource ("Password generator") and adds a quality qualifier ("cryptographically secure"), so the agent knows exactly what it produces. It implicitly separates itself from siblings like estimate_password_strength or generate_random_numbers, though it never explicitly names such 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?

There is no statement of when to use this tool, no prerequisites, and no routing to related siblings (e.g., estimate_password_strength for checking an existing password). The agent must infer its applicability from the name alone.

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

generate_random_numbersD
Read-onlyIdempotent
Inspect

Random number generator

NameRequiredDescriptionDefault
maxNo
minNo
countNo
uniqueNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already indicate the operation is read-only, non-destructive, idempotent, and closed-world, so safety is covered. The description adds no behavioral context such as output determinism, default ranges, uniqueness constraints, or result format.

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

Conciseness2/5

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

The description is only a short phrase, but it is under-specified rather than concise. It is front-loaded in name only and contains no useful structure or detail.

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

Completeness1/5

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

For a tool with four undocumented parameters, no output schema, and no annotations explaining return values, the description is completely inadequate. It fails to clarify output shape, defaults, or constraints needed to invoke the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0% for four parameters (min, max, count, unique), and the description provides no parameter semantics at all. It does not explain defaults, count bounds, or how 'unique' interacts with the range, leaving the schema property names to carry the entire burden.

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

Purpose2/5

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

The description 'Random number generator' simply restates the tool name and title rather than specifying scope, output type, or distinguishing it from siblings such as generate_uuid, generate_password, or generate_lorem. It is a tautology with no additional clarifying detail.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus related generators, nor on prerequisites or expected scenarios. The agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_robots_sitemapC
Read-onlyIdempotent
Inspect

Robots.txt and sitemap.xml generator

NameRequiredDescriptionDefault
pagesYes
domainYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — notably it never says where the generated files go (no output schema exists) or what happens with a 500-page cap, which is the one behavioral fact an agent would need.

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?

A single front-loaded line with no filler, so it wastes nothing — but at five words it is under-specified rather than concise, leaving no room for the output-location or limit details it should carry.

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?

Two required parameters, 0% schema description coverage, and no output schema mean the description must carry the burden of explaining inputs and the return shape, and it does neither. For a generator with no declared output, an agent cannot tell whether the files are returned inline, written to storage, or summarized.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description mentions neither parameter. The words 'robots' and 'sitemap' hint that 'pages' feeds the sitemap and 'domain' the robots.txt host line, but the 500-item maxItems limit and required URI format for domain are left for the agent to discover in the raw 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 names the concrete artifacts produced (robots.txt and sitemap.xml), so an agent knows exactly what it gets. However, it uses a nominal phrase ('generator') rather than a verb+resource statement and offers no differentiation from nearby SEO siblings such as generate_meta_tags or schema_jsonld.

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 indication of when to use this versus alternatives, no prerequisites (e.g., whether the site must be publicly reachable), and no note on which file to pick or whether both are always produced. The agent must infer everything from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_slugC
Read-onlyIdempotent
Inspect

Slug generator — SEO-friendly URL slug

NameRequiredDescriptionDefault
textYes
lowercaseNo
maxLengthNo
separatorNo
removeStopWordsNo

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds nothing beyond that — no note on determinism guarantees, default separator behavior, or whether stop-word removal alters meaning; with annotations present the bar is lower, but there is zero added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single phrase is front-loaded and free of padding, but it is under-specified rather than concise — brevity here reflects missing information, not efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no output schema, and no parameter documentation, the description leaves the agent without enough to call the tool confidently — output format, defaults, and truncation behavior are all unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters, and the description supplies no parameter meaning at all. Non-obvious inputs like separator (default? allowed values?), removeStopWords, and maxLength truncation semantics are left entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Slug generator — SEO-friendly URL slug" conveys the resource and the output form (a URL slug), but the opening phrase largely restates the tool name. It doesn't distinguish scope from nearby text utilities such as case_convert or remove-stop-words behavior, so the purpose is identifiable but thin.

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 indication of when to use this versus alternatives (case_convert, find_and_replace, url_encode_decode) and no prerequisites or exclusions stated. The agent must infer the use case entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_uuidB
Read-onlyIdempotent
Inspect

Uuid generator — v4, optional bulk

NameRequiredDescriptionDefault
countNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds two useful facts — the UUID version (v4, random) and that multiple values can be produced in one call — but says nothing about output shape, formatting (hyphens/case), or ordering for bulk results.

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?

Five words, front-loaded with the resource and variant. It is efficient, though the extreme terseness pushes essential detail (return format, default count) into other dimensions rather than into the 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 single-optional-parameter generator with full annotation coverage, little is needed. The one real gap is that no output schema exists and the description never says whether a single UUID string or a list is returned, which matters for the bulk mode.

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 0%, so the description must carry the load. 'Optional bulk' usefully signals that count is optional and controls how many UUIDs are returned, but it doesn't state the default when omitted or the 1–1000 range explicitly, leaving half the parameter's meaning to inference from 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 verb and resource plus the algorithm variant ('Uuid generator — v4'), which is more than a bare restatement. It does not, however, distinguish itself from nearby generators such as generate_hash, generate_password, generate_random_numbers, or generate_slug, so an agent gets no routing signal.

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 statement of when to use this versus the other generator siblings, and no prerequisites or exclusions. 'Optional bulk' hints at one usage mode but gives no guidance on choosing it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hashtagsC
Read-onlyIdempotent
Inspect

Hashtag generator — extract or generate

NameRequiredDescriptionDefault
maxNo
textNo
actionYes
keywordsNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only that the tool can extract or generate hashtags, without explaining behavior such as input requirements, output shape, or mode-specific effects.

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-loaded, with no wasted words. However, its brevity leaves it under-specified for a four-parameter tool with multiple modes, so conciseness comes at the cost of useful structure.

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?

There is no output schema, and the description does not compensate by explaining return values, parameter requirements, or mode-specific behavior. Annotations cover safety, but an agent still lacks enough context to confidently choose parameters for each action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across four parameters, and the description does not explain what 'text', 'keywords', or 'max' mean or which parameters apply to 'extract' versus 'generate'. It only repeats the two action values already present in the enum.

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 the resource (hashtags) and names two concrete operations (extract, generate), which is clearer than a tautological statement. It does not distinguish from any sibling, but no sibling tool appears directly comparable.

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 'extract' versus 'generate', nor does it explain prerequisites or expected inputs for either mode. The enum in the schema lists the actions, but the description does not help select between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

html_entitiesD
Read-onlyIdempotent
Inspect

Html entity converter

NameRequiredDescriptionDefault
textYes
actionYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that: it doesn't say whether named entities such as &amp; or numeric entities are produced or accepted, or how unrecognized input is treated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Being three words long is not conciseness here; it is under-specification. There is no front-loaded explanation of what the conversion does, so brevity costs rather than earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/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 and no parameter documentation anywhere, the description should carry the burden and instead says nothing about inputs, results, or direction of conversion. An agent has essentially only the enum values to work from.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two required parameters. The description never mentions 'text' or 'action', so the encode/decode choice and what kind of text is expected are left entirely to the agent to infer from the bare enum in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description "Html entity converter" essentially restates the tool name (html_entities) and title (Html Entities). It conveys the resource but adds no verb-level specificity about direction, scope, or what conversion means, so an agent cannot distinguish it from url_encode_decode or text_emoji_unicode without reading 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 Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance at all about when to use this tool versus the many sibling encoders/decoders (url_encode_decode, base64, text_emoji_unicode). No preconditions, no exclusions, nothing that routes the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_compressA
Read-onlyIdempotent
Inspect

Make an image file smaller from freedailypro: same format unless format is given (png, jpeg, webp, avif, gif, tiff), quality 1-100 for JPEG/WebP/AVIF (default 80), PNG stays lossless unless quality is below 100 (then a smaller 256-colour palette), metadata removed unless stripMetadata is false, optional maxWidth/maxHeight (never enlarges). If the file cannot be made smaller in its own format the original bytes come back unchanged and the note says so

NameRequiredDescriptionDefault
formatNopng, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input
qualityNo0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG
losslessNoWebP/AVIF lossless
maxWidthNo
maxHeightNo
fileBase64Yes
stripMetadataNoRemove EXIF/GPS/colour-profile data. Default true
backgroundColorNoFill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description still adds real value: format preservation, default quality 80, automatic metadata stripping, no-upscaling, and the graceful fallback where unshrinkable files return original bytes with an explanatory note. It omits size/rate constraints on the base64 payload, which is the main remaining 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?

Information-dense and front-loaded with the core action, then defaults, then the edge-case fallback. It is a single run-on sentence, though, which costs a little scannability.

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 an 8-parameter tool with no output schema, the description covers the main behaviour well but leaves the response shape vague ('the note says so') and does not account for the lossless and backgroundColor parameters that materially change output.

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?

With 63% schema coverage the schema already documents most parameters, and the description adds useful semantics for format, quality (including the PNG palette threshold), stripMetadata, and maxWidth/maxHeight. However it never mentions the 'lossless' flag for WebP/AVIF or 'backgroundColor' (required for JPEG transparency), leaving two parameters to the schema alone.

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+resource ('Make an image file smaller') and immediately scopes the behaviour, which separates it from image_convert/image_resize without naming them. Sibling differentiation is implicit rather than explicit, 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (shrinking a file) but never states when to pick this over image_convert, image_resize, or image_crop, nor any prerequisites such as input size limits. An agent must infer the selection rule from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_convertA
Read-onlyIdempotent
Inspect

Convert an image to PNG, JPEG, WebP, AVIF, GIF, TIFF, BMP or ICO from freedailypro, with optional quality, background colour, resize (fit modes), rotate/flip, grayscale, DPI and metadata controls. Inputs: JPEG, PNG, WebP, GIF (animated kept for GIF/WebP output), AVIF, TIFF, SVG, BMP. HEIC is not supported. Returns the converted file as base64 text.

NameRequiredDescriptionDefault
dpiNoPrint resolution written into PNG, JPEG, TIFF and BMP
fitNoHow the picture meets width and height. Default inside
blurNo
flipNoMirror top to bottom
flopNoMirror left to right
sizesNoICO sizes, from 16, 32, 48, 64, 128, 256 (e.g. '16,32,48'). Default 16,32,48
widthNo
effortNo0 fastest to 10 smallest file (clamped to what the format allows; 'speed' is the same thing)
formatYespng, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types such as image/webp also work
heightNo
rotateNoMultiple of 90 degrees clockwise (not for animated images)
qualityNo0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF (and TIFF with jpeg compression, palette PNG)
sharpenNo
animatedNoKeep every frame of an animated GIF/WebP when the output is GIF or WebP. Default true
bitDepthNoBMP: 24 (no transparency) or 32 (keeps transparency)
losslessNoWebP/AVIF lossless; false on PNG makes a smaller 256-colour palette PNG
grayscaleNo
autoOrientNoTurn photos upright from their EXIF rotation flag. Default true
fileBase64Yes
pngPaletteNoPNG: reduce to a 256-colour palette for a smaller file
progressiveNoJPEG progressive scan
stripMetadataNoRemove EXIF/ICC data. Default true; false keeps it
backgroundColorNoFill for transparent areas, e.g. '#ffffff', 'ffffff' or 'white'. Default white for JPEG and 24-bit BMP; for other formats only applied when given
tiffCompressionNo
chromaSubsamplingNoJPEG/AVIF colour detail: 4:4:4 sharpest, 4:2:0 smaller
withoutEnlargementNoNever make the picture bigger than the original
pngCompressionLevelNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is read-only, idempotent, non-destructive, and closed-world. The description adds useful context beyond annotations: it returns base64 text, animated GIF/WebP frames are preserved when relevant, and HEIC input is rejected.

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 and reasonably compact for a 27-parameter tool, with format, inputs, unsupported inputs, and return value presented efficiently. The phrase 'from freedailypro' is nonessential, and the long first sentence is dense but still readable.

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 image-conversion tool with a rich input schema and no output schema, the description covers the critical operational facts: output formats, input formats, HEIC exclusion, animation handling, and base64 return value. It leaves out minor operational details such as input size limits, but the schema covers most parameter-level semantics.

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 70% description coverage and already documents many parameters in detail. The description adds a useful high-level summary of optional controls and some format-specific behavior, but it does not clarify several remaining parameter details such as blur, sharpen, effort, or width/height semantics 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 and resource: convert an image to a named set of output formats. It also names supported input formats and explicitly excludes HEIC, making the tool distinguishable from related image transformation 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?

It gives clear usage context by listing output and input formats and calling out that HEIC is unsupported. It does not explicitly tell the agent when to prefer image_convert over sibling tools such as image_resize, image_rotate, or image_flip, even though those transformations are available as options here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_cropB
Read-onlyIdempotent
Inspect

Crop an image to a region from freedailypro. unit fraction (default): x, y, w, h are 0 to 1 of the image; unit px: pixels. Reads and writes JPEG, PNG, WebP, AVIF, GIF (first frame), TIFF

NameRequiredDescriptionDefault
hYes
wYes
xNo
yNo
unitNo
formatNopng, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input
qualityNo0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG
fileBase64Yes
stripMetadataNoRemove EXIF/GPS/colour-profile data. Default true
backgroundColorNoFill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive behaviour, so the bar is lower. The description usefully adds that GIFs crop only the first frame and lists supported input/output codecs, but says nothing about what is returned (base64 payload?) or size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Compact and front-loaded: the action comes first, then unit semantics, then format support. The only wasted fragment is the 'from freedailypro' attribution.

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 10 parameters, no output schema, and only partial schema descriptions, the description should state what the tool returns (a base64-encoded image) and how cropping interacts with format/quality options. Format coverage is documented well; the return contract 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 coverage is only 40%, and the description does compensate for the undocumented x/y/w/h by explaining the fraction-vs-px unit semantics and the 0–1 range. However it leaves defaults for x/y implicit, does not clarify that w/h are extents rather than edges, and adds nothing about the format/quality/stripMetadata behaviour already 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 verb and resource ('Crop an image to a region') and enumerates supported formats, which clearly separates it from siblings like image_resize or image_convert. The stray 'from freedailypro' branding adds noise but does not obscure the action.

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 crop versus resize/convert, and no mention of prerequisites or edge cases (e.g. region exceeding image bounds). The agent must infer the use case entirely from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_flipA
Read-onlyIdempotent
Inspect

Flip an image horizontally (mirror left to right) or vertically from freedailypro. Reads and writes JPEG, PNG, WebP, AVIF, GIF (first frame), TIFF

NameRequiredDescriptionDefault
formatNopng, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input
qualityNo0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG
directionYes
fileBase64Yes
stripMetadataNoRemove EXIF/GPS/colour-profile data. Default true
backgroundColorNoFill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint, so the safety bar is lower; the description adds genuinely useful behavior beyond them by listing the supported codecs and warning that GIF input yields only the first frame. That GIF caveat is exactly the kind of trait an agent cannot learn from structured fields. It omits what the tool actually returns, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the operation and its axes front-loaded, followed by format support. The trailing 'from freedailypro' attribution is noise that does not help an agent decide or call, but it costs only a sentence fragment.

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 stateless transformation with no output schema, the definition covers input formats and the GIF caveat but never indicates what comes back (a base64 image in the chosen format, presumably) or whether the default output format matches the input. An agent must guess at the return shape before chaining a follow-up 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 67%, so the schema already documents format, quality, stripMetadata and backgroundColor. The description only reinforces the direction parameter by spelling out what horizontal means; it adds no meaning to the remaining four parameters. Baseline 3 fits.

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 (flip) and resource (image) plus the two supported axes, and parenthetically clarifies that horizontal means a left-to-right mirror. An agent can distinguish it from image_rotate or image_crop by the operation name alone, though no sibling is named.

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 (mirroring an image along one axis) but gives no explicit when/when-not guidance and never mentions the neighboring image_rotate or image_convert tools that an agent might confuse it with. Usage is inferable but not routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_resizeA
Read-onlyIdempotent
Inspect

Resize an image from freedailypro with a width, a height or both (one alone keeps the aspect ratio). fit: fill (default, stretches to exactly width x height), contain (fits inside and pads with backgroundColor), cover (fills the box and crops the overflow around the centre), inside (fits within, keeps the ratio), outside (at least as large, keeps the ratio). withoutEnlargement never makes it bigger. Reads and writes JPEG, PNG, WebP, AVIF, GIF (animation kept), TIFF; the first text item is the picture as base64, the second a JSON note with its size

NameRequiredDescriptionDefault
fitNoDefault fill (exact width x height)
widthNo
formatNopng, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input
heightNo
qualityNo0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG
animatedNoKeep every frame of an animated GIF/WebP. Default true
fileBase64Yes
stripMetadataNoRemove EXIF/GPS/colour-profile data. Default true
backgroundColorNoFill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'
withoutEnlargementNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add context — and it does: supported formats, GIF animation preservation, default aspect-ratio behavior, and, notably, the return shape (first text item = base64 image, second = JSON size note), which no output schema provides. It does not state whether "writes" means anything persistent or what happens on unsupported input/oversized dimensions, which keeps it from a 5.

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?

Zero filler sentences and the material is front-loaded: dimensions first, then fit modes, then formats, then return shape. The drawback is that everything is delivered as one dense paragraph of parenthetical enumerations, which is harder to scan than the same content split into short labeled lines.

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 transformation tool with no output schema, most of what an agent needs is present, including the unusual dual-text-item return contract. Gaps remain: no mention of the 16384 dimension ceiling, no note that backgroundColor is mandatory in effect for JPEG, and the stray "freedailypro" reference adds noise rather than information.

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?

At 60% schema coverage the description genuinely compensates: it spells out each fit mode (contain pads with backgroundColor, cover crops around the centre, inside/outside semantics) and the withoutEnlargement effect in more operational detail than the schema's terse enum hint. It adds nothing for quality, stripMetadata, or animated, but those already carry schema 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?

Opens with a specific verb+resource ("Resize an image") and immediately defines the two-dimensional model (width, height, aspect-ratio preservation), which is enough to distinguish it from image_convert or image_compress in practice. It never names a sibling to route against, and the phrase "from freedailypro" is meaningless context to an agent, 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 statement of when to use this versus image_convert, image_crop, image_rotate, or image_compress, all of which sit in the same family. The fit-mode enumeration describes behavior inside the tool, not the decision to pick the tool. The only usage-adjacent guidance is the schema-level note that a single dimension keeps the aspect ratio.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_rotateA
Read-onlyIdempotent
Inspect

Rotate an image clockwise by 90, 180 or 270 degrees from freedailypro (no other angles). Reads and writes JPEG, PNG, WebP, AVIF, GIF (first frame), TIFF

NameRequiredDescriptionDefault
formatNopng, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input
degreesYes
qualityNo0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG
fileBase64Yes
stripMetadataNoRemove EXIF/GPS/colour-profile data. Default true
backgroundColorNoFill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds useful context about supported formats and that GIF input is processed using only the first frame, though it does not clarify whether output is returned as base64 or a file.

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 core operation, angle constraints, and format support. The phrase 'from freedailypro' is slightly unnecessary, but overall the text is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter image tool with no output schema, the description covers the core operation and format behavior but omits the return representation and does not describe the required base64 input. It is adequate for basic selection, 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 coverage is 67%, and the description reinforces the allowed degree values and lists several supported formats. However, it does not explain the required fileBase64 input or add meaning to quality, stripMetadata, and backgroundColor beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: rotate an image clockwise by exactly 90, 180, or 270 degrees. It also lists supported formats, making it easy to distinguish from siblings such as image_flip, image_convert, or image_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?

Usage is implied by the rotation angle constraint and format list, but the description does not explicitly say when to use this instead of image_flip or image_convert. It gives no alternatives for arbitrary-angle rotation or non-rotational transformations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

image_watermarkA
Read-onlyIdempotent
Inspect

Put a watermark on an image from freedailypro: text (drawn in Roboto, Latin/Greek/Cyrillic) or a watermark picture (watermarkBase64), at a position (center, top-left, top, top-right, left, right, bottom-left, bottom, bottom-right or tile), with opacity 0-1, size, margin and rotation. Reads and writes JPEG, PNG, WebP, AVIF, GIF (first frame), TIFF

NameRequiredDescriptionDefault
textNoThe words to stamp. Send this or watermarkBase64
colorNoText colour, a name or hex. Default white
scaleNoWatermark picture width as a share of the image width. Default 0.2
formatNopng, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input
marginNoDistance from the edge in pixels
opacityNoDefault 0.5
qualityNo0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG
fontSizeNoText size in pixels. Default about 1/12 of the shorter side
positionNoDefault bottom-right
rotationNoDegrees; tile defaults to -30
fileBase64Yes
stripMetadataNoRemove EXIF/GPS/colour-profile data. Default true
backgroundColorNoFill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'
watermarkBase64NoA watermark picture (PNG with transparency works best), base64

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds genuinely useful behavior beyond the annotations: text is rendered in Roboto with Latin/Greek/Cyrillic coverage (so CJK/other scripts silently won't render), GIF support is first-frame only, and input/output formats are enumerated. Annotations already declare readOnly/idempotent/non-destructive, and since the tool transforms base64 in and out without persisting state, the phrase "reads and writes JPEG, PNG..." refers to file formats rather than server mutation, so 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?

Two tight clauses with the core action first and the format constraint last; no filler despite covering 14 parameters. Every phrase (Roboto coverage, GIF first frame, position list) carries information an agent needs.

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 14 parameters and no output schema, the description never says what comes back (presumably a base64 image) or in which form, and it doesn't clarify the fallback when neither text nor watermarkBase64 is supplied and only fileBase64 is required. Format and script caveats are covered, so it is adequate but leaves real gaps for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 93%, so the schema already documents nearly every parameter including defaults and ranges. The description mostly restates that surface (position list, opacity 0-1, size, margin, rotation); its only real added meaning is the font/script limitation attached to the text parameter. Baseline 3 applies when the schema carries the weight.

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 and resource ("Put a watermark on an image") and enumerates the two watermark modes (text vs. watermarkBase64), which makes it clearly distinct from pdf_watermark and pptx_watermark. It stops short of naming those siblings explicitly, but the resource noun does the differentiation work.

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 when-to-use / when-not-to-use guidance and no reference to any alternative tool. The only constraint given is the supported-format list at the end, which tells the agent what inputs are valid but not when this tool is the right choice. The either/or requirement for text vs. watermarkBase64 appears only in the schema, not routed from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

invisible_textC
Read-onlyIdempotent
Inspect

Invisible text generator — encode/decode/strip/generate zero-width

NameRequiredDescriptionDefault
modeYes
textNo
lengthNo
carrierNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. Beyond that the description only restates the mode enum; it does not say what encode returns (visible carrier with hidden payload?), what strip emits, or whether generate is random or deterministic — behavioral gaps the annotations cannot fill.

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?

A single front-loaded line with zero padding, which is good structurally. But the brevity here is under-specification rather than economy — the space saved buys no usable guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 4 parameters at 0% schema coverage, no output schema, and no explanation of how modes interact with inputs, the definition is not sufficient for correct invocation. The agent has to guess which fields each mode requires.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and four parameters exist. The description adds nothing about 'text', 'length' (1-500), or 'carrier', and 'carrier' in particular is completely opaque — an agent cannot tell it is the visible host string for the zero-width payload. Only 'mode' is implicitly covered via its enum values.

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 the resource (invisible text / zero-width characters) and enumerates the four operations, so an agent can tell it converts text to and from hidden zero-width encoding. It stops short of distinguishing itself from adjacent text tools like fancy_text or text_emoji_unicode, but the verb+resource pairing is specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to pick each mode or when to prefer a sibling tool. Nothing explains that encode vs decode are inverses, that strip removes hidden payloads, or that generate produces filler without input text — the agent must infer all routing from the one-word mode names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_to_pptxA
Read-onlyIdempotent
Inspect

Build an editable PowerPoint (.pptx, base64) from a JSON description of the slides, from freedailypro. Each slide takes title, subtitle, bullets (strings, or {text, bullets:[...]} for sub-bullets; set numbered true for 1. 2. 3.), text (a paragraph or list of paragraphs), table ({header:[...], rows:[[...]]}), image ({data: base64 or data: URI of a PNG, JPEG or GIF, alt: description}) and notes (speaker notes). A slide with only a title (and subtitle) is a cover when it is first or has a subtitle; layout "title" or "content" forces it. With an image the text sits on the left and the picture on the right, keeping its shape; an image alone is centred. Bullets, text and subtitle accept bold, italic, code and links; titles and table cells are plain text. Pictures are never fetched from a URL: send base64, and give each an alt text (a warning says when it is missing). Limits: 200 slides, 40 bullets per slide, tables of 60 rows and 12 columns (a table over 14 rows will run off the slide: warning), pictures 8 MB each and 24 MB in all. Themes clean, dark, corporate, warm, minimal, or brand {color, headingFont, bodyFont, dark}. Returns fileName, base64, slides and warnings; invalid input errors name the field, for example slides[2].bullets[1] must be text.

NameRequiredDescriptionDefault
brandNoA theme made from a brand colour and fonts. Replaces theme.
themeNoBuilt-in look. Default clean. Ignored when brand is given.
titleNoDeck title (file property). Default: the first slide's title.
slidesYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations already covering safety (readOnly, idempotent, non-destructive), the description adds rich behavioral detail: hard limits (200 slides, 40 bullets, 60x12 tables, 8MB per image/24MB total), warnings for missing alt text and oversized tables, the rule that pictures are never fetched from URLs, and the error format. This is well beyond what structured fields convey.

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?

It is a single dense paragraph, front-loaded with the core purpose, then limits. Every sentence carries information, but the block of formatting/theme/limit rules could be broken into structure for easier scanning. Still efficient for the amount of content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex nested-parameter mutation tool with no output schema, the description covers return values (fileName, base64, slides, warnings), error naming (slides[2].bullets[1]), themes, and limits — everything an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, but the description adds semantics the schema lacks: which fields accept markdown (**bold**, *italic*, `code`, links) versus which are plain text (titles, table cells), image layout rules (text left/image right, lone image centred), and the alt-text warning behavior. These are genuinely useful additions over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Build an editable PowerPoint (.pptx, base64) from a JSON description of the slides'. This clearly distinguishes it from siblings like csv_to_pptx or markdown_to_pptx, which take 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is clear — it converts JSON slide descriptions to PPTX — and the cover-slide rules ('a slide with only a title... is a cover when it is first or has a subtitle') guide construction. However, it never explicitly names alternatives like csv_to_pptx or markdown_to_pptx or states when-not to use this tool, leaving the routing inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

keyword_densityD
Read-onlyIdempotent
Inspect

Keyword density

NameRequiredDescriptionDefault
textYes
keywordYes
caseSensitiveNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description contributes nothing beyond that — no statement of how density is calculated, whether case folding applies by default, or what the result 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words is not conciseness but under-specification; there is no front-loaded statement of purpose, inputs, or output to structure. Nothing is wasted because nothing is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 3-parameter tool with zero schema descriptions and no output schema leaves the agent with no documented contract: neither what the parameters mean nor what the return value (percentage? count? per-occurrence list?) will be. The description is wholly inadequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description supplies no parameter meaning at all. The optional caseSensitive flag, the 500-character keyword cap, and whether 'text' is raw input or a document reference are all undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Keyword density" merely restates the tool name/title and never states a verb or what is computed or returned. An agent can guess it analyzes text for keyword frequency, but the description adds no information beyond the identifier and does nothing to distinguish it from siblings like word_count or analyze_readability.

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 when-to-use guidance, no mention of alternatives such as word_count or analyze_readability, and no preconditions. The agent must infer the tool's role purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_http_statusC
Read-onlyIdempotent
Inspect

Http status reference

NameRequiredDescriptionDefault
codeNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false. The description adds no behavioral context beyond that, such as what information is returned for a given status code.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short fragment, so it is concise but under-specified rather than efficiently informative. It lacks the detail needed to guide invocation.

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 simple lookup tool with no output schema, the description should at least indicate what is returned for a status code. It does not, and it also leaves the sole input parameter unexplained.

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 has one parameter, `code`, with 0% description coverage, and the description does not mention it. It does not explain that the parameter is an HTTP status code or that valid values are 100–599.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description "Http status reference" essentially restates the tool name/title without specifying the action or return value. It hints at the HTTP status domain but does not say that the tool looks up the meaning or details of a status code.

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 this tool, when not to use it, or which alternatives might apply. The usage is only implied by the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

markdown_to_htmlC
Read-onlyIdempotent
Inspect

Markdown html converter — basic subset

NameRequiredDescriptionDefault
markdownYes

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is read-only, non-destructive, idempotent, and not open-world. The description adds only the limitation 'basic subset', which is useful but does not specify which Markdown constructs are unsupported or what the output contains.

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 extremely short and front-loaded with no wasted words, but it is under-specified rather than helpfully concise. The fragmentary style leaves out important context that a converter tool should provide.

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 simple single-parameter converter, the description is still too thin: it does not state what Markdown subset is supported, what the return value is, or any practical constraints. Annotations cover safety but not conversion behavior.

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?

There is one required parameter, 'markdown', with 0% schema description coverage. The parameter name is self-explanatory given the tool name, but the description provides no additional semantics, format expectations, or limitations for the input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the conversion (Markdown to HTML), so the core purpose is inferable, but the phrasing is fragmentary and 'basic subset' is vague. It does not clarify the supported Markdown feature set or how it differs from related tools such as markdown_to_pptx.

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 this tool, when not to use it, or what alternatives exist. The agent is left to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

markdown_to_pptxA
Read-onlyIdempotent
Inspect

Turn Markdown or a plain outline into an editable PowerPoint (.pptx, base64) from freedailypro, with real title and body placeholders (so Outline view, the slide master and accessibility checks work). # Title makes the title slide (a short line under it is the subtitle), ## Heading a new slide, ### Heading a bold sub-heading, - item / 1. item bullets (indent two spaces for sub-bullets), | a | b | tables, Note: text speaker notes, --- ends a slide, bold, italic, code and links work. Pictures given by web address are not fetched (reported in warnings); use json_to_pptx to put pictures in. mode outline reads an indented outline instead (first line = deck title). Themes: clean, dark, corporate, warm, minimal, or a brand colour and fonts.

NameRequiredDescriptionDefault
modeNoDefault markdown
brandNoA theme made from a brand colour and fonts. Replaces theme.
themeNoBuilt-in look. Default clean. Ignored when brand is given.
markdownYesThe deck as Markdown (or an indented outline in outline mode)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real value beyond them: output is editable with genuine title/body placeholders so Outline view, master and accessibility checks work, URL images are skipped and surfaced in warnings, and theme is ignored when brand is supplied. It stops short of describing the warnings payload or size/time limits.

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?

Front-loads the outcome and the editable-slide guarantee, then packs syntax, limitations and theming into a tight block with zero filler. The single dense sentence enumerating inline styles is readable but borders on a run-on.

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 correctly carries the return contract (base64 .pptx) and the key failure mode (unfetched URL images). Coverage of theming and modes is thorough; only the warnings/error detail and length ceiling handling are left unstated.

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 already 100%, so this is bonus territory, and the description does add meaning — the Markdown grammar that markdown accepts, the outline-mode reinterpretation of the same field, and theme-vs-brand precedence. It doesn't spell out indent depth beyond two spaces or how deeply nested brand overrides interact.

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 artifact — turn Markdown or an outline into an editable .pptx returned as base64 — and immediately distinguishes itself from the sibling json_to_pptx for image-bearing decks. The named markup constructs make the input contract unambiguous at a glance.

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 picture-containing decks to json_to_pptx and explains when to pick mode=outline (indented outline, first line = deck title). It stops short of positioning against csv_to_pptx or stating when a deck should be templated instead, so it is clear context without full alternatives coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

minify_codeB
Read-onlyIdempotent
Inspect

Css js minifier — whitespace and comment strip

NameRequiredDescriptionDefault
codeYes
typeYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful scope by saying it only strips whitespace and comments, which implies it does not rename identifiers or perform deeper transformations, but it omits output/error 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 front-loaded fragment with no filler. It is highly concise, though its terseness leaves gaps that other dimensions capture.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with annotations and no output schema, the description covers the core operation. It is still incomplete on parameter roles and usage conditions, so it meets only the minimum viable level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two parameters. The description mentions CSS and JS, which maps loosely to the type enum, but it does not explain the code parameter or clarify accepted input formats 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 states a specific operation and resource: minifying CSS/JS by stripping whitespace and comments. It is clear what the tool does, though it does not explicitly distinguish itself from nearby text-formatting 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 gives no explicit when-to-use guidance, prerequisites, or alternatives. An agent can infer it is for minification, but there are no usage conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

paraphrase_textB
Read-onlyIdempotent
Inspect

Paraphraser — rule-based phrase and word substitution plus simple clause moves, not an LLM; strength low, medium or high

NameRequiredDescriptionDefault
textYes
strengthNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context beyond annotations: it is rule-based, not an LLM, and performs only simple clause moves, which sets expectations about determinism and rewrite quality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. Purpose, method, and strength levels are packed efficiently into one line.

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 annotations covering safety, the description gives enough context to understand the basic operation. However, with 0% schema description coverage and no output schema, it leaves the required text parameter, full enum semantics, and return behavior unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden for two parameters. It mentions strength as 'low, medium or high' but omits the schema's additional 'light' and 'strong' enum values, and it says nothing about the required 'text' parameter or its 20,000-character limit.

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 ('Paraphraser') and explains the method: rule-based phrase/word substitution plus simple clause moves, explicitly not an LLM. It distinguishes the tool from LLM-based paraphrasers, but does not differentiate it from sibling text tools such as find_and_replace or check_grammar.

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 on when to use this tool versus alternatives, nor any exclusions or prerequisites. The name implies paraphrasing, but the description does not say when to choose this over find_and_replace, check_grammar, or other text-rewriting siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_user_agentC
Read-onlyIdempotent
Inspect

User agent parser

NameRequiredDescriptionDefault
uaYes
clientHintsNoOptional: pasted Sec-CH-UA request headers; adds a 'clientHints' object (for example Windows 11)

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no mention of the returned structure, how unknown/garbage user agents are handled, or how clientHints alters the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but that brevity comes from under-specification rather than efficiency; the single phrase merely echoes the name and carries no front-loaded actionable information. Nothing is wasted because nothing of substance is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining what a parse yields (browser, OS, device, bot flag, clientHints object), and it says none of it. For a two-parameter, no-output-schema tool this leaves a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: the `clientHints` parameter is well documented in-schema, but `ua` has no description at all and the description text provides no compensating explanation. The one sentence given adds zero semantics beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"User agent parser" restates the tool name and title rather than describing the operation; it does not say what fields are extracted or how it differs from neighbouring text/encoding utilities. The one thing it does convey is the resource (a user-agent string), which keeps it above a pure 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?

There is no stated when-to-use, no prerequisites, and no alternative named. An agent must infer from the name alone that this applies to HTTP User-Agent / Sec-CH-UA strings rather than, say, log parsing or header decoding.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_add_page_numbersC
Read-onlyIdempotent
Inspect

Add page numbers to a PDF

NameRequiredDescriptionDefault
formatNo
prefixNo
startAtNo
fontSizeNo
positionYes
pageRangeNoComma-separated pages/ranges to number, e.g. '1,3-5' -- if omitted, numbers every page
fileBase64Yes
skipFirstPageNo

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare readOnlyHint=true and destructiveHint=false, but the description says the tool 'Add[s] page numbers to a PDF' — an operation that modifies the document, which directly conflicts with the read-only claim. The description also adds no other behavioral context (whether the source is mutated or a new file is returned). This mirrors the annotation-contradiction pattern.

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 single sentence is front-loaded and free of padding, but at this length the brevity is under-specification rather than efficiency for an 8-parameter tool. It is appropriately sized only in the sense that it wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, 13% schema coverage, no output schema, and annotations that conflict with the described behavior, the description should carry much more weight. It provides nothing about the resulting file, numbering format semantics, or the read-only discrepancy an agent needs resolved before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 13% — just pageRange is documented. The description explains none of the 8 parameters, so the meaning of 'format' values (plain vs. page-of-total vs. prefixed), the prefix/format interaction, startAt, fontSize, or skipFirstPage is left entirely to inference from terse enum names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add page numbers to a PDF') that an agent can match to the request, and none of the siblings (compress, merge, watermark, rotate, etc.) overlap with this operation. It falls short of 5 only because it does not hint at scope or output (in-place vs. new base64 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 contains no guidance on when to choose this tool, no prerequisites (e.g. that fileBase64 input is required), and no mention of alternatives. It also does not clarify how it differs from pdf_watermark, which could also stamp content on pages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_compressA
Read-onlyIdempotent
Inspect

Shrink a PDF from freedailypro. Default aims for about 50% smaller: tidies structure first (text untouched), then shrinks pictures only as much as needed. level: auto (default), medium, strong. targetFileSize (such as 2MB or 500KB) is the size to end at, for auto; default is half the original.

NameRequiredDescriptionDefault
levelNo
fileBase64Yes
targetFileSizeNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/non-destructive, so the safety profile is covered. The description adds real value beyond that: it discloses that text is left untouched and only images are downsampled "as much as needed", which matters for fidelity expectations. It does not describe the returned artifact (base64? new file?) or any size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the effect and default, then parameter notes; every sentence is functional. The "from freedailypro" attribution is filler that could be dropped.

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 3-param tool with no output schema and zero schema coverage, the description covers defaults and fidelity but omits the shape of the result (compressed base64 payload vs reference), any input size ceiling, and what distinguishes the compression levels. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage the description must carry the load, and it does for two of three params: it enumerates level values with the default and explains targetFileSize's format ("2MB or 500KB") and its default of half the original. It leaves fileBase64 unexplained and does not differentiate medium from strong.

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?

"Shrink a PDF" gives a specific verb and resource, and the follow-up explains the two-stage approach (structure tidy, then image downsampling). It is clearly distinguishable from the other pdf_* tools (merge, split, rotate) by the compression goal, though it never names a sibling it could be confused with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the default behavior (target ~50% reduction) and notes targetFileSize applies to the auto level, which implicitly guides parameter choice. However, there is no guidance on when to pick medium vs strong, or when this tool is the right choice versus alternatives like pdf_flatten.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_compress_aggressiveA
Read-onlyIdempotent
Inspect

Shrink a PDF from freedailypro harder (the site's Aggressive mode): everything Balanced does, then pages become pictures in finer and finer steps (empty areas dropped, flat areas as plain fills, photos, text and small print at lower resolutions); a page is converted only when that is clearly smaller. Text on converted pages is no longer selectable and links and form fields on them are gone (textSelectable says which). Heavier than Balanced: it can take several seconds per page, and returns the best level finished so far (truncated: true) if the time budget runs out. Errors if the PDF is unreadable, password-protected, over 100 pages, or if nothing gets smaller.

NameRequiredDescriptionDefault
fileBase64YesThe PDF, base64 encoded (up to 20 MB, up to 100 pages)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations only declaring this a safe, idempotent read, the description carries real load: it discloses the irreversible quality loss (text no longer selectable, links and form fields removed), the per-page time cost, and the truncated: true partial-result behavior on budget exhaustion. It also enumerates the failure modes (unreadable, password-protected, >100 pages, no size gain), which the structured data does not.

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 purpose is front-loaded and every sentence carries information, but the middle parenthetical enumeration of compression steps is dense and long-winded, making the definition heavier to parse than necessary for a one-parameter tool.

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 usefully names the response fields it depends on (textSelectable, truncated) and lists error cases. It is nearly complete, though it never states the output encoding (presumably base64) or a rough expectation of achievable size reduction.

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 fileBase64 parameter is fully documented in the schema ('up to 20 MB, up to 100 pages'). The description only restates the page ceiling through error conditions and adds no new syntax or encoding detail, 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 names a specific verb and resource ('Shrink a PDF') and positions the operation relative to a named sibling ('everything Balanced does, then...'), including the degradation ladder (empty areas, flat fills, photos, text, small print). An agent can distinguish this from pdf_compress_balanced or pdf_compress_extreme 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear cost signal ('Heavier than Balanced', 'several seconds per page') and a timeout fallback, which implies when this is the right choice over the faster alternative. It does not explicitly say when to prefer pdf_compress_extreme or when to back off to Balanced, so the routing is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_compress_balancedA
Read-onlyIdempotent
Inspect

Shrink a PDF from freedailypro the gentle way (the site's Balanced mode): tidy the file, empty blank pages, and re-save the pictures inside at about 140 dpi. Text stays selectable; links, bookmarks, form fields and page sizes are kept. Returns the smaller file plus the levels applied. Errors if the PDF is unreadable, password-protected, over 100 pages, or if nothing gets smaller (for example a PDF that is already mostly text); in that case try pdf_compress_aggressive.

NameRequiredDescriptionDefault
fileBase64YesThe PDF, base64 encoded (up to 20 MB, up to 100 pages)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new behavior: what is preserved (selectable text, links, bookmarks, form fields, page sizes), what is normalized (blank pages emptied), and the exact error/precondition set. That goes well beyond what the structured fields declare.

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 paragraph: what it does, then what it preserves, then returns, then failures and fallback. Dense and largely waste-free, though the parenthetical site reference and the multi-clause preservation list make it slightly wordier than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still says what comes back ('the smaller file plus the levels applied'), and it covers input limits, preconditions, preservation guarantees and the fallback path. An agent has everything needed to call it and to interpret a likely failure.

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 single parameter is fully documented in the schema (base64, 20 MB, 100 pages), so the baseline is already met. The description reinforces the page limit as a hard error and confirms no other inputs are needed, though it adds no syntax or encoding detail 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?

States a specific verb and resource ('Shrink a PDF') and names the exact variant ('the site's Balanced mode') plus its concrete mechanism (~140 dpi image re-save, blank-page removal, tidy). This lets an agent place it precisely against pdf_compress_aggressive, pdf_compress_extreme and the other compression siblings without opening a 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?

Gives explicit when-not conditions (unreadable, password-protected, over 100 pages, or no size reduction such as an already text-only PDF) and routes to a named alternative, pdf_compress_aggressive, for the failure case. The 'gentle way' framing also signals it is the low-aggression end of the compression family.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_compress_extremeA
Read-onlyIdempotent
Inspect

Shrink a PDF from freedailypro as far as it will go (the site's Extreme mode): everything Aggressive does, then every page as 70 dpi greyscale and as pure black-and-white JBIG2 (exact, then with shared letter shapes), keeping the smallest. Colour and shading are lost and text is no longer selectable; very rarely a letter in tiny print can be swapped for a look-alike one in the symbol-mode result, so check important numbers in the original. Heavy: several seconds per page; returns the best level finished so far (truncated: true) if the time budget runs out. Errors if the PDF is unreadable, password-protected, over 100 pages, or if nothing gets smaller.

NameRequiredDescriptionDefault
fileBase64YesThe PDF, base64 encoded (up to 20 MB, up to 100 pages)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only and idempotent annotations, the description discloses consequential behavior: colour and shading loss, loss of text selectability, rare letter substitution in symbol-mode output, several seconds per page runtime, truncated results when the time budget expires, and specific error conditions. This is unusually thorough behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and mode, and every clause carries useful information about output quality, performance, truncation, or errors. It is dense and could be easier to scan with structure, but it avoids 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 single-parameter tool with full schema coverage and existing safety annotations, the description covers the remaining agent-relevant details: quality tradeoffs, rare symbol-mode artifacts, performance expectations, truncation behavior, and error conditions. Nothing essential for correct invocation appears 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?

There is only one parameter, fileBase64, and the schema already documents it at 100% coverage, including the 20 MB and 100-page limits. The description reinforces the 100-page limit through its error list but adds no new meaning about the parameter itself, 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 uses a specific verb and resource: 'Shrink a PDF' in the site's Extreme mode. It explicitly distinguishes this from its closest sibling by saying it does 'everything Aggressive does' plus additional greyscale and JBIG2 processing, so an agent can identify it without consulting other 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 makes the use case clear: maximum compression at the cost of colour, shading, and selectable text. It references the Aggressive mode as a baseline and lists heavy runtime and failure conditions, but it stops short of explicitly naming the preferred alternative for cases where colour or selectable text matters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_compress_greyscaleA
Read-onlyIdempotent
Inspect

Shrink a scanned PDF from freedailypro by turning pages into 100 dpi greyscale JPEG pictures: shading and photos are kept, colour is dropped, text on converted pages is no longer selectable. Larger than the black-and-white files but nothing is thresholded to pure black and white. A page is converted only when that makes it at least 10% smaller. Errors (nothing is returned) if the result would not be smaller than the original, or if the PDF is unreadable, password-protected or over 100 pages.

NameRequiredDescriptionDefault
dpiNoRender resolution, 100 to 200. Default 100
fileBase64YesThe PDF, base64 encoded (up to 20 MB, up to 100 pages)

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations, which only declare it safe and idempotent. It discloses that text becomes non-selectable, colour is dropped, shading/photos kept, per-page conversion only happens with a 10% size win, and exactly when the operation errors out with no result. This is rich behavioral context an agent needs before calling.

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?

Dense but front-loaded, leading with the transformation and tradeoffs before the error conditions. It is a single long paragraph that stays on task, with only minor redundancy around the black-and-white comparison.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries return behavior and instead explains that errors return nothing, plus the exact preconditions and per-page conversion rule. For a compression tool with annotations covering safety, this leaves nothing an agent needs 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 coverage is 100%, so both parameters are already documented in the schema, setting the baseline at 3. The description reinforces the 100 dpi greyscale output and the 100-page/20 MB limits but adds little syntax or format detail beyond what the schema already provides for dpi and fileBase64.

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 and resource ('shrink a scanned PDF') and details the exact transformation (pages to 100 dpi greyscale JPEG). It implicitly separates itself from the black-and-white sibling tools by noting it is 'larger than the black-and-white files' but not thresholded, though it never names those siblings explicitly.

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?

Gives clear conditions of use and the failure conditions (unreadable, password-protected, over 100 pages, result not smaller). It positions itself against the black-and-white variants via the size/quality tradeoff, but stops short of explicitly directing the agent to choose a specific sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_compress_lossless_bwA
Read-onlyIdempotent
Inspect

Shrink a scanned PDF from freedailypro by turning pages into pure black-and-white JBIG2 pictures, each page coded exactly as read (no letter is ever swapped; safe for contracts and numbers). Colour and shading are lost and text on converted pages is no longer selectable. A page is converted only when that makes it at least 10% smaller; other pages (for example real-text pages) are copied untouched. Errors if the PDF is unreadable, password-protected, over 100 pages, or if no smaller file results.

NameRequiredDescriptionDefault
dpiNoRender resolution, 100 to 200. Default 150
fileBase64YesThe PDF, base64 encoded (up to 20 MB, up to 100 pages)

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by disclosing what is lost (colour, shading, selectable text), the 10%-smaller gate that keeps untouched pages intact, and concrete limits (unreadable, password-protected, >100 pages, no size gain). These are exactly the behavioral facts an agent needs before committing a document.

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?

Sentences are front-loaded and dense with operational facts; nothing is filler. It is on the longer side, but the length is justified by the safety caveats it must convey.

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 should say what comes back; it hints at 'if no smaller file results' but never states the return shape (e.g. base64 PDF payload). It is otherwise complete for a two-parameter 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 fileBase64 and the 100-200 dpi range are already documented in the schema. The description reinforces limits (100 pages) but adds no dpi semantics, 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 names a specific verb (shrink), resource (scanned PDF), and technique (JBIG2 black-and-white, bit-exact lossless page coding). It implicitly separates itself from the other pdf_compress_* siblings by emphasizing 'lossless' and 'no letter is ever swapped', but it never explicitly names which sibling to use instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides strong situational cues ('safe for contracts and numbers') and lists failure conditions, but gives no explicit routing guidance between this tool and the many sibling compressors (pdf_compress_smallest_bw, pdf_compress_greyscale, pdf_compress_balanced, etc.). The agent must infer when this specific variant beats the alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_compress_sizeA
Read-onlyIdempotent
Inspect

Shrink a PDF from freedailypro to a size you need, such as under 2 MB for an email or a portal (the site's File size mode). The same steps as Balanced, Aggressive and Extreme, gentlest first, stopping at the first one that fits. If the goal cannot be reached it finishes every allowed step and returns the smallest file with targetMet: false and limitReason. limit caps how far it may go (balanced keeps text selectable). Heavy at the stronger limits; returns the best level so far (truncated: true) if the time budget runs out. A PDF already under the goal is returned unchanged.

NameRequiredDescriptionDefault
limitNoHow far the steps may go. Default extreme. balanced = text stays selectable; aggressive = pages may become pictures; extreme = greyscale and black-and-white too
fileBase64YesThe PDF, base64 encoded (up to 20 MB, up to 100 pages)
targetSizeYesThe size to reach: a number of bytes, or text such as 2MB or 500KB

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation as read-only, idempotent, and non-destructive. The description adds valuable behavioral context: what happens on failure (targetMet: false, limitReason), timeout behavior (truncated: true), and that files already under the goal are returned unchanged, though it does not cover auth or rate limits.

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 purpose and then explains mechanics, failure modes, and edge cases in a dense but efficient manner. It could be slightly tighter, but every sentence contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (iterative compression, target size, timeout handling) and the absence of an output schema, the description thoroughly explains what the tool does and what it returns under various conditions, leaving no critical gaps for an agent to call 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 coverage is 100%, so the schema already fully documents all three parameters. The description adds minor reinforcement (e.g., that `limit` caps how far it may go and that balanced keeps text selectable), but this largely repeats the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Shrink) and resource (a PDF) with the goal of reaching a target size, and differentiates itself from fixed-mode siblings by describing iterative steps. However, it does not explicitly name a sibling to use instead for fixed compression, so an agent must infer the routing.

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 (when you have a specific size target like under 2 MB), but the description lacks explicit when-to-use vs. when-not-to-use guidance or direct alternatives to the other pdf_compress tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_compress_smallest_bwA
Read-onlyIdempotent
Inspect

Shrink a scanned PDF from freedailypro to the smallest black-and-white file: JBIG2 symbol mode stores each letter shape once and reuses it across pages, typically 3x smaller than the lossless black-and-white file. Very rarely a letter can be swapped for a look-alike one (for example a 6 and a 8 in tiny print), so check important numbers in the original. Colour and shading are lost and text on converted pages is no longer selectable. A page is converted only when that makes it at least 10% smaller; other pages are copied untouched. Errors if the PDF is unreadable, password-protected, over 100 pages, or if no smaller file results.

NameRequiredDescriptionDefault
dpiNoRender resolution, 100 to 200. Default 150
thresholdNoHow alike two letter shapes must look to share one stored shape, 0.4 to 0.9. Default 0.85; higher is safer and slightly larger
fileBase64YesThe PDF, base64 encoded (up to 20 MB, up to 100 pages)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the read-only annotations: discloses the JBIG2 look-alike glyph risk ('a 6 and a 8'), loss of colour and text selectability, the per-page 10%-smaller conversion heuristic, and the exact error conditions. This is the kind of quality-risk disclosure an agent needs before compressing important documents.

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?

Five dense sentences that each earn their place: mechanism, risk, losses, per-page logic, error cases. The core purpose and the smallest/lossless comparison are front-loaded with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description covers risks, page heuristics, and errors thoroughly, but it never states what is returned (e.g., base64 PDF payload, filename, size). That single omission keeps it from being fully complete for invoking and handling 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 the schema already explains dpi, threshold (including 'higher is safer and slightly larger'), and fileBase64 limits. The description adds no parameter-level detail beyond what the schema provides, so 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 and resource ('Shrink a scanned PDF') and pinpoints the variant: 'smallest black-and-white file' using JBIG2 symbol mode. The '3x smaller than the lossless black-and-white file' comparison cleanly separates it from siblings like pdf_compress_lossless_bw and pdf_compress_greyscale.

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 is clear: scanned PDFs where the smallest black-and-white output is wanted and colour/selectable text are expendable. It implicitly points to the lossless black-and-white alternative via the size comparison, but never says explicitly when to choose that sibling over this one, so routing still requires inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_extract_pagesB
Read-onlyIdempotent
Inspect

Extract specific pages from a PDF into a new PDF

NameRequiredDescriptionDefault
pagesYesComma-separated pages/ranges, e.g. '1,3-5,8'
fileBase64Yes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the useful behavioral detail that a NEW PDF is produced rather than modifying the source, but it does not describe the return payload (base64?), page-number validation, or out-of-range handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the verb, resource, selection scope, and output are all conveyed up front. Its terseness costs detail, but that gap is measured in other dimensions rather than verbosity here.

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 annotations and no output schema, the description covers the core action adequately. It still leaves the agent guessing about the return format (the new PDF's encoding) and whether page numbering is 1-based, and it says nothing about the undocumented fileBase64 input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: the 'pages' parameter is documented with a comma/range syntax example, while 'fileBase64' has no description at all. The description adds no parameter-level meaning beyond the word 'pages' and does not compensate for the undocumented input-encoding parameter.

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 ('Extract specific pages from a PDF') plus the output ('into a new PDF'), which is clearer than a bare name restatement. It does not explicitly distinguish itself from close siblings such as pdf_split or pdf_organize, leaving that differentiation implicit.

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 only implied: an agent can infer this is for pulling a page subset rather than splitting into separate files, but nothing in the text says when to prefer it over pdf_split or pdf_organize. No preconditions, edge cases, or 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_fill_formA
Read-onlyIdempotent
Inspect

Fill a PDF form's fields — sets text, checkbox, dropdown, radio and option-list values and returns the filled PDF as base64 in the first text item, optionally flattened so it can no longer be edited. Only the fields you name are changed; every other field keeps its value. To clear a field send null (or an empty string). The second text item is a JSON report: fieldsSet, fieldsNotSet (name and reason) and fieldsUntouched

NameRequiredDescriptionDefault
valuesNoField name -> value. Text/dropdown/radio: a string; option list: a string or an array of strings; checkbox: true/false. null or an empty string clears the field. Fields not named here are left untouched
checkedNoField name -> checked state, for checkbox fields (only the named checkboxes change)
flattenNoIf true, bakes the values in and removes the ability to edit them further
fileBase64YesThe PDF file, base64-encoded

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations by disclosing the return contract: the filled PDF arrives as base64 in the first text item and a JSON report (fieldsSet, fieldsNotSet with reasons, fieldsUntouched) in the second. It also explains the irreversible consequence of flatten. The readOnlyHint=true annotation is defensible for a stateless transform that returns a new document rather than mutating the source, so 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and the return shape, then the semantics of partial updates and clearing. The output-report sentence is dense but every clause carries information; 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?

There is no output schema, and the description compensates fully by specifying both returned text items and the report's fields. Combined with 100% schema coverage on the nested values/checked objects, an agent has everything needed to call and interpret this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds value beyond the schema by restating the clearing convention (null or empty string) and the flatten irreversibility, neither of which is fully conveyed by the terse schema 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?

Opens with a specific verb and resource ('Fill a PDF form's fields') and enumerates exactly which field types are supported (text, checkbox, dropdown, radio, option list). It never names the obvious sibling, pdf_parse_fillable_form, which is the read-side counterpart an agent must distinguish it from.

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?

Gives clear operational context: 'Only the fields you name are changed; every other field keeps its value' and how to clear a field with null or an empty string. The 'optionally flattened' clause implicitly routes to the flatten decision, but no explicit when-not or alternative tool is mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_flattenA
Read-onlyIdempotent
Inspect

Permanently flatten a PDF's fillable form fields

NameRequiredDescriptionDefault
fileBase64Yes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the useful 'Permanently' detail about irreversibility, but says nothing about the output (does it return flattened base64?) or that the source document is untouched, leaving a mild tension with the read-only/destructive hints 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?

A single front-loaded sentence with no filler; the key verb and the permanence constraint both appear immediately.

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 transformation tool this is minimally adequate, but with no output schema the description should state what is returned (flattened PDF bytes) and whether the input is only base64. Those gaps matter for correct invocation.

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?

There is one parameter with 0% schema description coverage, and the description never mentions 'fileBase64' or its encoding/format requirements. With low coverage the description should compensate, but it adds no parameter meaning beyond the self-evident name.

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 gives a specific verb ('flatten') and a specific resource ('a PDF's fillable form fields'), plus the permanence qualifier. It is clearly distinguishable from siblings like pdf_fill_form and pdf_parse_fillable_form.

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 only implied: an agent can infer this is for locking in filled form values, but the description names no alternatives (e.g., pdf_fill_form) and gives no explicit when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_mergeB
Read-onlyIdempotent
Inspect

Merge multiple PDFs into one

NameRequiredDescriptionDefault
filesBase64YesThe PDF files, base64-encoded, in the order they should be merged

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond them: it does not say what the tool returns, whether the source PDFs are affected, or how the merged output is delivered.

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 short sentence is front-loaded and wastes no words. It is arguably too terse for the value it could add, but nothing is redundant.

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 (one required param, no nested objects) and annotations cover its safety profile, but with no output schema the description should say what the merged result looks like (returned base64, a file reference, or a URL). That omission leaves a real gap for an agent planning the call.

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?

With a single parameter at 100% schema description coverage, the schema already carries the semantics, including the critical ordering note ('in the order they should be merged'). The description contributes no additional parameter meaning, so 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 a specific verb (merge) and resource (PDFs) plus the outcome (into one), which is unambiguous. It does not need to differentiate from siblings because no other merge tool exists in the list, but it also names no boundaries.

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?

'Merge multiple PDFs into one' implies the use case (combining several PDFs into a single document) but gives no explicit when/when-not guidance, no prerequisites, and never mentions alternatives such as pdf_organize or pdf_extract_pages for related operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_organizeB
Read-onlyIdempotent
Inspect

Reorder, duplicate, rotate, or insert blank pages in a PDF

NameRequiredDescriptionDefault
pageSpecsYesOrdered list describing the output PDF's pages -- 'source' with a 0-based index (and optional rotation) to reuse a page from the input, or 'blank' to insert a blank page
fileBase64Yes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world scope, which covers the safety profile. The description adds that pages can be reordered/duplicated/rotated or that blanks can be inserted, but says nothing about the returned artifact (presumably a new PDF) or whether the source is untouched.

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 listing the operations with no filler or redundancy. Nothing could be trimmed without losing capability information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter transform tool with no output schema, the definition omits what the caller receives and how the result is returned. Annotations cover safety but not the input-to-output relationship, leaving a real gap for an agent wiring this into a pipeline.

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?

At 50% schema coverage, the description partially compensates: 'duplicate' implies reusing a source index more than once and 'rotate'/'insert blank' map to the union variants. However, fileBase64 is undocumented in both schema and description, and the ordered-list nature of pageSpecs is left to 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 specific verbs (reorder, duplicate, rotate, insert blank pages) against a clear resource (a PDF), which is far more informative than the bare name. It does not explicitly contrast with the nearby pdf_rotate or pdf_extract_pages siblings, but the combination of operations makes the scope distinguishable.

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 this versus pdf_rotate (whole-document rotation), pdf_extract_pages, or pdf_split. The agent must infer selection entirely from the operation list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_parse_fillable_formA
Read-onlyIdempotent
Inspect

Parse a PDF's fillable form fields — lists every fillable field's name, type (text, checkbox, dropdown, radio, optionlist), current value and options so you know what to fill

NameRequiredDescriptionDefault
fileBase64YesThe PDF file, base64-encoded

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Read-only/idempotent/non-destructive are already covered by annotations, yet the description still adds real information by disclosing the response contents (field name, type, current value, options). It doesn't say what happens when a PDF has zero fillable fields or how large field sets are handled, which keeps it below a 5.

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: verb+resource first, return payload after the em dash. No redundancy and nothing an agent must read twice.

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 compensates by enumerating the returned field attributes and the valid type values, which is the key information for a caller. Only edge behavior (empty form, malformed PDF) is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (fileBase64) with 100% schema description coverage, so the schema already carries the semantics. The description correctly focuses on the output rather than restating the input, matching the baseline for a zero-ambiguity single-param tool.

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 and resource ('Parse a PDF's fillable form fields') and then enumerates exactly what it returns, so an agent can tell it is an inspection tool rather than a mutation. It stops short of naming pdf_fill_form as the write-side counterpart, which would have made the sibling split 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 trailing clause 'so you know what to fill' implies this is a pre-step to pdf_fill_form, but the workflow is never stated as a rule and there are no exclusions (e.g. what to do for non-fillable PDFs or when the field list is empty). Usage is inferable rather than instructed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_redactA
Read-onlyIdempotent
Inspect

Permanently redact areas of a PDF. Boxes are fractions (0 to 1) of the page as displayed, measured from the top-left corner, pages numbered from 0. Text characters, picture pixels, vector art and annotations under a box are removed from the file itself and an opaque black bar is drawn; everything outside the boxes stays real, selectable text in its original fonts. A page that cannot be edited exactly (for example a curved drawing partly under a box) is turned into a picture with the boxes painted black instead. Pages without boxes are not touched

NameRequiredDescriptionDefault
boxesYesPage index (as a string key, 0-based) -> array of boxes to redact, each in fractional page coordinates (0-1)
fileBase64YesThe PDF file, base64-encoded

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations indicate a read-only, non-destructive, idempotent transformation. The description adds critical behavioral context the annotations do not: the redaction is permanent, removed content is replaced with an opaque black bar, pages that cannot be edited exactly are rasterized with boxes painted black, and pages without boxes are untouched. It does not describe the return value, but given the annotation safety profile, this is a strong addition.

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 paragraph that covers purpose, coordinate conventions, core behavior, fallback behavior, and untouched pages. Every sentence earns its place, though it could be slightly more scannable if broken into distinct sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 2 parameters and full schema coverage, the description supplies the key operational details an agent needs: coordinate semantics, permanence, rasterization fallback, and untouched pages. The only notable omission is what the tool returns (a redacted PDF), which is unstated because no output schema exists.

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 meaningful semantics beyond the schema: boxes are fractions of the page 'as displayed' and measured from the top-left corner, with pages numbered from 0. This clarifies coordinate orientation and rotation behavior that the schema does not specify.

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: 'Permanently redact areas of a PDF.' The operation is unique among the siblings (none of which perform redaction), so an agent can immediately identify it.

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 clear when this tool is appropriate: when you need to permanently remove content from a PDF. There are no sibling alternatives for redaction, so no exclusions are needed, but it stops short of explicitly saying 'use this when you need to remove sensitive information' as a separate guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_repairB
Read-onlyIdempotent
Inspect

Attempt to recover a damaged or corrupted PDF

NameRequiredDescriptionDefault
fileBase64Yes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds one genuinely useful nuance with 'Attempt' — signalling best-effort recovery that may fail — but says nothing about what happens on failure, whether the original is preserved, or how the recovered output 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?

A single seven-word sentence with the key qualifier ('damaged or corrupted') front-loaded and nothing redundant. It is terse to the point of under-specification, but not padded.

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 rich annotations and no output schema, the description covers the core action but leaves an agent guessing at the return shape (repaired PDF bytes? base64? a status flag?) and failure semantics. 'Attempt' is the only hint about outcome behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single parameter 'fileBase64', and the description never mentions it. The name hints at base64-encoded PDF bytes, but constraints (size limits, encoding expectations, whether the whole file must be supplied) are undocumented in both places.

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 ('recover') and resource ('damaged or corrupted PDF'), which is unambiguous and distinct from every sibling (all of which are transform/compress/extract tools). It stops short of explicitly contrasting with any sibling, but none overlaps, so the purpose is 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?

There is no guidance on when to use this versus, say, re-generating a PDF or using pdf_flatten, no mention of prerequisites (e.g., must be a PDF that fails to open), and no note on whether the input is expected to be readable. The agent must infer the trigger condition entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_rotateB
Read-onlyIdempotent
Inspect

Rotate PDF pages — 90-degree steps only (0, 90, 180, 270)

NameRequiredDescriptionDefault
rotationsYes1-indexed page number (as a string key) -> rotation in degrees, must each be a multiple of 90
fileBase64Yes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed-world scope, covering the safety profile. The description adds no behavior beyond that — it doesn't say what pages omit from `rotations` do, whether the source is modified, or what comes back. With annotations carrying the safety story, this is adequate but thin.

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 short clause, front-loaded with the verb and resource, then the constraint. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should explain the return shape (presumably a rotated PDF as base64) and whether unspecified pages are left untouched or the whole file is rewritten. Neither is stated, leaving real gaps for a two-parameter, nested-schema tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: `rotations` is well documented as a 1-indexed page-key map, but `fileBase64` has no schema description and the tool description never explains that the PDF must be supplied as a base64 string. With a nested object parameter and half the parameters undocumented, the description needed to compensate and does not.

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 and resource ("Rotate PDF pages") plus the accepted angle values, so the operation is unambiguous. It does not explicitly distinguish itself from near-neighbors like pdf_organize or pdf_flatten, but no sibling actually rotates pages, so confusion risk is low.

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 when-to-use guidance, no prerequisites (does the input PDF need to be unencrypted or unflattened?), and never names an alternative tool. The only guidance is the 90-degree constraint, which is a validity rule rather than usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_splitA
Read-onlyIdempotent
Inspect

Split a PDF into multiple files by page range, or combine specific ranges into one reordered file

NameRequiredDescriptionDefault
rangesYesSemicolon-separated groups, each a comma-separated list of pages/ranges, e.g. '1-3,5;7-9' for two output files
fileBase64Yes
combineIntoOneNoIf true, combines all specified ranges into a single reordered PDF instead of one file per group

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, and non-destructive, so the description's main added value is disclosing the output structure—multiple files versus a single reordered file. This is useful behavioral context beyond the annotations, though it omits details about error handling or how the output is returned (e.g., base64 payloads).

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, efficient sentence that front-loads the core action and its two modes. It is appropriately sized for a tool with three parameters and no output schema, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description helpfully clarifies the two output modes (multiple files or one reordered file). Combined with the annotations covering safety and the schema covering two of three parameters, the definition is nearly complete, though it could note how results are delivered.

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 67%; the ranges and combineIntoOne parameters have clear schema descriptions, while fileBase64 is self-explanatory. The tool description adds little semantic detail beyond what the schema already provides, aligning with the baseline of 3 when the schema carries most 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 (split) and resource (PDF) and clarifies the two operational modes: splitting into multiple files by page range or combining ranges into one reordered file. It is clear enough to distinguish this tool from generic manipulation siblings, though it does not explicitly name alternatives like pdf_extract_pages or pdf_merge.

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 two modes implicitly indicate when to use combineIntoOne versus splitting into multiple files, but the description never explicitly states when to choose this tool over siblings such as pdf_extract_pages or pdf_organize. No exclusions or prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_watermarkC
Read-onlyIdempotent
Inspect

Add a text watermark to a PDF

NameRequiredDescriptionDefault
textYes
colorNoText colour, 6-digit hex. Default 808080
layerNoabove (default) draws over the page; behind draws under the page's own content so text stays dark (a full-page scan or solid background hides it)
opacityNo0.05 to 1. Default 0.4
fontSizeNoPoints, 6 to 400. Default: sized automatically to fill the page
positionNo
fileBase64Yes
rotationDegreesNoDegrees, default 45 (0 is horizontal)

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that: it doesn't say a new PDF is produced/returned, whether the source is unmodified, or how output is delivered (base64?), which is the key ambiguity for an 8-param file-processing tool with no output 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?

A single front-loaded sentence with zero filler. It is efficient, though the terseness borders on under-specification given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and a file-in/file-out contract, the description is not complete enough. It omits the return format and the fact that the input document is not mutated, both of which an agent needs to chain this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 63% (text, fileBase64, and position have no schema descriptions), and the description supplies no parameter meaning at all. The agent must infer that fileBase64 is the source document and what 'tiled'/'center' positioning does purely from enum values.

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 ('Add a text watermark to a PDF'), which is unambiguous and clearly distinct from siblings like pdf_compress or pdf_redact. It stops short of naming how it differs from adjacent tools, but the operation itself is unmistakable.

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 this tool versus alternatives, nor any preconditions (e.g. input must be a valid PDF, watermark vs. flatten vs. redact for hiding content). Usage is only inferable from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

percentageD
Read-onlyIdempotent
Inspect

Percentage calculator

NameRequiredDescriptionDefault
aYes
bYes
operationYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context at all: no rounding/precision behavior, no handling of division-by-zero or negative inputs, no return format. It simply repeats the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words, but this is under-specification rather than conciseness; there is no front-loaded explanation of the operation modes or operand roles. Nothing wasteful is present, yet nothing useful is either.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-required-parameter tool with an opaque enum and no output schema, the description should explain each operation mode and the meaning of a and b. It does neither, leaving the agent unable to invoke the tool correctly without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all meaning, and it carries none. The three parameters (a, b, operation) are undocumented in both places, and the enum values percentageOf vs whatIsPercentOf are genuinely ambiguous — the agent cannot tell which operand is the base and which is the rate, or what percentChange expects as ordering.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Percentage calculator" essentially restates the tool name rather than stating a specific verb and resource; it never says which percentage computations it performs. From the description alone an agent cannot tell how this differs meaningfully from calculate_discount, calculate_tip, or other percentage-adjacent 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?

There is no when-to-use guidance, no mention of alternatives such as calculate_discount or calculate_sales_tax, and no conditions for selecting this tool over them. The agent is left to infer everything 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.

planning_choresC
Read-onlyIdempotent
Inspect

Household chore splitter

NameRequiredDescriptionDefault
choresYes
peopleYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. However, the description adds nothing beyond that — not even the splitting policy (random assignment, fair distribution, round-robin), which is the core behavioral trait an agent would need. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words is technically concise, but this is under-specification rather than efficient structure — there is no front-loaded explanation of behavior or output. Brevity here costs the agent necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, two undocumented required parameters, and no explanation of the splitting algorithm or return shape, the description leaves an agent unable to predict what happens when the tool is invoked. It is inadequate for even a simple two-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for both required parameters, so the description must compensate and does not. It never clarifies that "people" is a list of names or that "chores" is a list of task strings, or whether list lengths must match.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Household chore splitter" identifies the domain (chores) and an implied action (splitting), but it is a noun fragment with no explicit verb and no statement of what the tool returns or how it splits. It does not differentiate itself from nearby siblings like planning_split_bill or planning_grocery_list.

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 call this versus alternatives, no prerequisites, and no mention of the sibling tools it might be confused with. An agent must infer everything from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_cost_of_livingC
Read-onlyIdempotent
Inspect

Cost of living comparison

NameRequiredDescriptionDefault
toNoNew place, same format as 'from'.
fromNoCurrent place as a U.S. city ('Austin' or 'Austin, TX') or 5-digit ZIP; looked up in the built-in table of 127 U.S. metros (BEA Regional Price Parities, 2023).
salaryYesCurrent salary.
toIndexNoCost-of-living index of the new place. Leave out when you send 'to'.
fromIndexNoCost-of-living index of the current place (100 = average). Leave out when you send 'from'.

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is fully covered without the description. The description adds nothing beyond that — notably it does not mention the 127-metro lookup limitation, the handling of unknown cities, or that indices can be supplied directly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words are not concision but under-specification; nothing is front-loaded because there is nothing to front-load. No sentence communicates the operation the agent would be invoking.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With five parameters (including an alternate index-based input path) and no output schema, the description should at least say it returns an adjusted/equivalent salary. It leaves the agent guessing about inputs, outputs, and coverage limits, which is inadequate for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema itself explains the 'from'/'to' formats, the 100=average index scale, and that toIndex/fromIndex should be omitted when the corresponding place is given. The description adds no parameter meaning on top of that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Cost of living comparison" essentially restates the tool name with a minimal noun phrase; it never states the actual operation, which is computing an equivalent salary between two places. There is no differentiation from siblings such as converters_affordability or planning_relocation_checklist.

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 when-to-use, when-not-to-use, or alternative is mentioned. The only implied guidance comes from the tool name, and the agent gets no signal about choosing this over converters_affordability or planning_monthly_budget.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_event_budgetD
Read-onlyIdempotent
Inspect

Event budget planner

NameRequiredDescriptionDefault
venueNo
extrasNo
guestsYes
cateringNo
costPerGuestNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish a read-only, idempotent, non-destructive, closed-world safety profile. The description adds no behavioral context beyond those annotations, such as how the budget is calculated, what inputs represent, or what the result includes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The phrase is short, but this is under-specification rather than useful conciseness. It lacks any front-loaded actionable detail, and every word could be replaced by the already provided tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter calculation tool with no output schema and no parameter descriptions, the definition is wholly inadequate. It does not explain required inputs, optional cost fields, or what the budget planner returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no explanation of the five parameters. Names like 'extras', 'venue', 'catering', and 'costPerGuest' are not clarified, so the description does not compensate for the undocumented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Event budget planner' merely restates the tool name and title, making it tautological. It gives no verb, scope, or distinguishing detail beyond the resource name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as planning_event_checklist, planning_event_schedule, or planning_guest_list. The agent must infer the tool's role entirely from its name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_event_checklistC
Read-onlyIdempotent
Inspect

Event checklist planner

NameRequiredDescriptionDefault
eventTypeNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds zero context beyond that — it doesn't say what a checklist contains, whether it's static or derived from eventType, or how results are presented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Only three words, so there is no padding, but the brevity comes from under-specification rather than economy. Nothing is front-loaded because nothing substantive is said.

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 tool with no output schema and an undocumented enum parameter, the description would need to explain what a checklist result looks like and how eventType affects it. Neither is present, leaving the agent unable to predict the response.

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 single parameter eventType has 0% schema description coverage and the description never mentions it. The enum values (wedding, birthday, conference, other) hint at behavior, but nothing explains how the chosen type changes the returned checklist, so the description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Event checklist planner" essentially restates the tool name and annotation title rather than stating a concrete operation. It implies a domain (event checklists) but gives no specific verb or output, and does not distinguish itself from siblings like planning_event_budget or planning_event_schedule.

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 when-to-use guidance at all — nothing about what triggers this tool versus planning_relocation_checklist, planning_packing_list, or the other event-planning siblings. The agent must infer purpose entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_event_scheduleD
Read-onlyIdempotent
Inspect

Event day schedule

NameRequiredDescriptionDefault
itemsYes
startHourYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no indication of how the schedule is derived (durations from startHour), whether output is ordered, or what happens with overlapping items.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the brevity is under-specification rather than conciseness — three words carry no actionable information. There is no front-loaded statement of what the tool produces.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With two required parameters, a nested items array, no schema descriptions, and no output schema, the description should explain the computed-schedule model. Nothing about the required input shape or expected result is conveyed, leaving the agent to infer everything from bare property names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description supplies no parameter meaning. It doesn't explain that startHour is the anchor time or that each item's 'minutes' is a duration used to lay out the sequence, which is the key semantic an agent needs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Event day schedule' merely restates the tool name and annotation title (Planning Event Schedule) without a verb or resource explanation. It doesn't clarify whether the tool builds, computes, or stores a schedule, and it doesn't distinguish it from siblings like planning_event_checklist or planning_itinerary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. An agent cannot tell from this text why it would pick this over planning_itinerary or planning_event_checklist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_grocery_listC
Read-onlyIdempotent
Inspect

Grocery list planner

NameRequiredDescriptionDefault
itemsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is known. The description adds nothing beyond that—it does not say whether the tool organizes, validates, sorts by aisle, or outputs an aggregated list, which is important context for a 'planner'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words are technically concise, but this is under-specification rather than useful brevity. There is no front-loaded scope or key constraint to orient the agent.

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 tool that requires a structured array of grocery items, the definition is missing any description of input format, behavior, or expected output. It relies entirely on the schema and annotations, which together do not explain the tool's planning behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it does not. It omits any explanation of the required items array or the nested name, qty, unit, and aisle fields, leaving the parameter's expected format and semantics undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Grocery list planner" essentially restates the tool name and title rather than stating a concrete verb and resource. An agent cannot tell what the tool actually does with the provided items or how it differs from siblings like planning_packing_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no indication of when to use this tool, when not to, or which sibling tools it might replace. The relationship to planning_packing_list, planning_inventory, or scale_recipe is entirely unaddressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_guest_listC
Read-onlyIdempotent
Inspect

Guest list tracker

NameRequiredDescriptionDefault
guestsYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the description adds nothing on the safety profile. Worse, "tracker" suggests stateful accumulation of a guest list while the annotations declare a pure read with no side effects, leaving the agent unsure what actually happens to the supplied array.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words is technically concise, but this is under-specification rather than economy — there is no front-loaded statement of action or scope for the agent to act on.

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?

There is no output schema, so the description must carry the load of explaining what the tool returns or does with the guest array, and it does not. With a nested object parameter, an enum-driven status field, and semantics that conflict with readOnlyHint, the definition is far too thin to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the sole required parameter `guests` is an array of objects with a status enum (invited/yes/no/maybe) and an optional plusOne. The description's phrase "guest list" only loosely gestures at the `guests` parameter and explains nothing about the status values or plusOne.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Guest list tracker" is a noun phrase that essentially restates the title "Planning Guest List"; it names no verb and does not say whether the tool reads, validates, summarizes, or stores a guest list. It gives no signal distinguishing it from siblings like planning_event_checklist or planning_event_budget.

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 at all on when to use this tool, no prerequisites, and no named alternative among the many planning_* siblings. The only implied usage comes from the word "guest", which is inference rather than instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_inventoryD
Read-onlyIdempotent
Inspect

Inventory tracker

NameRequiredDescriptionDefault
itemsYes

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no behavioral traits beyond the naming convention. While annotations provide safety context (readOnlyHint: true), the description does nothing to expand upon or clarify the tool's operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While short, the description fails the test of being 'concise' in a useful way. It is maximally brief at the expense of all necessary contextual value, making it extremely poor structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex nested schema, the long list of similar planning siblings, and the lack of a title, a single phrase like 'Inventory tracker' is entirely insufficient for an AI agent to correctly invoke or understand the tool's function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the context signals show 0% schema description coverage and the schema is complex (a nested array of items with quantity, SKU, and reorder date), the description offers no compensation for the lack of semantic meaning regarding the required inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Inventory tracker' is a tautology, restating the domain implied by the name but failing to specify the action (e.g., view, add, update, or calculate stock levels). It provides no functional clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There are no instructions provided on when to use this tool. Given the large set of similar sibling tools (e.g., `planning_grocery_list`, `planning_packing_list`), the agent has no guidance to differentiate this tool's specific purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_itineraryD
Read-onlyIdempotent
Inspect

Travel itinerary splitter

NameRequiredDescriptionDefault
daysYes
startDateNoOptional first day of the trip, as YYYY-MM-DD. Adds a calendar date to every day of the result.
activitiesYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that – not how activities map to days, how the day count is used, or what happens if activities outnumber days.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words is not conciseness but under-specification; there is no front-loaded statement of action, input, or result to anchor an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter transformation tool with no output schema and two undocumented required parameters, the description provides none of the information an agent needs to invoke it correctly or predict its result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33%: only startDate carries a description. The two required parameters, days and activities, are documented nowhere – the description never explains that activities are distributed across the supplied number of days, nor any constraint or ordering. With low coverage the description must compensate and it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Travel itinerary splitter" gestures at the resource (a travel itinerary) but the verb "splitter" is ambiguous – it never says whether activities are distributed across days, truncated, or grouped. An agent cannot tell what output shape to expect or how this differs from planning_packing_list or planning_travel_countdown.

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 when-to-use guidance, no prerequisites, and no mention of the sibling planning tools that might be the better choice. The only signal is the name itself, which is inference rather than instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_monthly_budgetD
Read-onlyIdempotent
Inspect

Monthly budget planner

NameRequiredDescriptionDefault
incomeYes
expensesYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered elsewhere. The description adds nothing beyond those annotations: it doesn't say what the planner computes (50/20/30 split, surplus/deficit), what mode the response takes, or that missing `kind`/`period` changes the output (that behavior is buried 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words is not concision but under-specification; there is no front-loaded statement of purpose, inputs, or outcome. Nothing is wasted, but nothing is communicated either.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 2-required-parameter computation tool with no output schema, no annotation elaboration in prose, and undocumented defaults (first version vs. plan response, name-based guessing, annual-to-monthly conversion) demands far more than a three-word label. Everything an agent needs to call it correctly is missing from the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is reported as 0%, so the description was expected to compensate for `income` and `expenses` (with nested name/amount/kind/period) — and it says nothing about any of them. Only the nested `kind` and `period` fields carry any documentation at all, and that lives in the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Monthly budget planner" restates the tool name/title rather than describing what the call actually does or returns. It implies a budgeting domain but supplies no verb+resource specificity and does not distinguish it from siblings like planning_event_budget or planning_cost_of_living.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative-routing guidance at all. An agent cannot tell from the description why it would pick this over planning_event_budget, planning_split_bill, or planning_cost_of_living in the same planning_* family.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_packing_listD
Read-onlyIdempotent
Inspect

Packing list generator

NameRequiredDescriptionDefault
nightsYes
climateYes
tripTypeNo

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing on top: no note that output is deterministic, no indication of how climate/tripType alter results, and no context on input expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words is not conciseness but under-specification; there is no front-loaded statement of behavior to justify the brevity. The single phrase earns its place only as a label, not as a tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero schema description coverage, no output schema, and three parameters (two required), the description leaves essentially everything an agent needs unexplained — required inputs, how they affect output, and return shape. The annotations cover safety only.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description mentions no parameters at all. The two enum parameters (climate, tripType) are partly self-documenting via their allowed values, but `nights` is an undescribed number whose unit and effect on list length are never explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Packing list generator" is essentially the tool name restated as a noun phrase; it adds no distinguishing detail beyond what planning_packing_list already conveys. It does not say what the output looks like (item list? categories?) or how it differs from sibling planning tools like planning_grocery_list or planning_event_checklist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the many sibling planning_* list generators, and no mention of any prerequisites or constraints. The agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_relocation_checklistC
Read-onlyIdempotent
Inspect

Relocation checklist planner

NameRequiredDescriptionDefault

No parameters

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description contributes nothing beyond that — it doesn't say whether the tool returns a static template, a generated list, or what the checklist contains, which is behaviorally important for a zero-input tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words is concise but not structured — it is a bare label rather than a front-loaded explanation. Under-specification, not efficiency, is the problem here.

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?

Because there is no input schema and no output schema, the description is the only place an agent could learn what this tool returns. It supplies none of that, and the crowd of similarly named planning_* siblings makes the omission material.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to explain; the baseline for 0 params applies. The description does not need to compensate for anything on this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Relocation checklist planner" is essentially the tool name reworded; it names no specific verb and gives no sense of what the planner produces or does. It does not differentiate itself from siblings like planning_event_checklist or planning_packing_list beyond the word "relocation".

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 indication of when to use this tool versus planning_event_checklist, planning_packing_list, or planning_travel_countdown. With no parameters, there is also no hint about what inputs (or lack thereof) trigger it, leaving the agent to guess.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_split_billC
Read-onlyIdempotent
Inspect

Split bill calculator

NameRequiredDescriptionDefault
totalYes
peopleYes
tipPctNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing on top — no mention of rounding behavior, currency assumptions, or whether tipPct defaults to zero when omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the size reflects under-specification rather than efficiency — there is exactly one fragment and no front-loaded useful content beyond the name. Nothing was trimmed because nothing was ever said.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With three undocumented parameters, no output schema, and no explanation of the return value (per-person amount? a breakdown including tip?), the description leaves the agent unable to predict results. For a simple calculator this is a low-cost fix that was not made.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for all three parameters (total, people, tipPct), so the description must compensate and does not. It never mentions that tipPct is optional, what units people/tipPct use, or whether total is pre-tax/pre-tip.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a three-word restatement of the tool name (planning_split_bill → "Split bill calculator"). It conveys the domain but adds no verb-level specificity and does nothing to separate it from near-neighbors like calculate_tip or calculate_discount.

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 this versus calculate_tip or percentage, no mention of preconditions, and no statement of what it assumes about the total (pre- or post-tip). The agent must infer everything from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planning_travel_countdownD
Read-onlyIdempotent
Inspect

Travel countdown planner

NameRequiredDescriptionDefault
nightsYes
climateYes
departIsoYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, closed-world, so the safety profile is covered. The description adds nothing beyond that — not what the countdown is anchored to, whether climate affects output, 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short but under-specified rather than concise; a four-word fragment cannot front-load meaningful information about a three-parameter computation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/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, undocumented parameters, no output schema, and no annotations carrying semantic detail, the description provides nothing an agent needs in order to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description must therefore explain departIso (date format), nights (numeric range 0+), and climate (hot/mild/cold enum). It explains none of them, leaving all three required parameters semantically opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Travel countdown planner" restates the tool name and title without saying what it actually computes (days remaining until departure? a countdown with preparation milestones?). No verb or output is specified, so an agent cannot tell what result to expect.

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 this tool versus alternatives, and a near-duplicate sibling (converters_countdown) exists with no differentiation. The agent must guess which countdown tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_accessibility_checkA
Read-onlyIdempotent
Inspect

Check a PowerPoint (.pptx) from freedailypro for accessibility problems and get a JSON report (or CSV): pictures and charts without alt text or with a file name as alt text, slides with no title or an empty or duplicate title, text under 12 points, table header rows, merged cells, vague link text and reading-order problems. Each issue has the slide, severity (error, warning, tip) and a plain message. The check reports only; it changes nothing.

NameRequiredDescriptionDefault
formatNoDefault json
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered; the description nonetheless adds the report shape (per-issue slide, severity level error/warning/tip, plain message), which is genuinely useful context beyond annotations. It does not discuss cost, limits, or failure modes for malformed input (those live in the schema), keeping it below 5.

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?

Purpose is front-loaded and the long defect enumeration earns its place by defining scope. The phrase 'from freedailypro' is vendor noise, and the single dense sentence of checks could be tightened, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining return values and does so (JSON or CSV, per-issue slide/severity/message). The only gap is whether an overall pass/fail summary or counts are returned, which an agent might want to know before calling.

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 fileBase64 constraints (50 MB, 500 slides, no .ppt, no password protection) and the format enum are already documented. The description only echoes the json/csv output choice, adding no syntax or size guidance beyond the schema — baseline 3 is correct.

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?

Specific verb (check) plus resource (PowerPoint .pptx) with the exact scope of the audit enumerated: alt text, titles, font size, table headers, merged cells, link text, reading order. An agent can distinguish this from pptx_clean, pptx_fonts, or pptx_extract_text 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 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 (auditing an existing deck for accessibility defects) and states 'The check reports only; it changes nothing,' which implicitly routes remediation work elsewhere. It never names a sibling alternative or states an exclusion, 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.

pptx_cleanA
Read-onlyIdempotent
Inspect

Strip what you do not want to share from a PowerPoint (.pptx) from freedailypro, and get a clean .pptx back (base64): speaker notes, comments, hidden slides, author and company details with the revision list, and the stored preview picture. All of those are on by default; documentProperties (title, subject, keywords) and customProperties (labels and tags) are off by default. Slide content, layout and formatting are untouched, and parts only the removed slides used are dropped. Errors if every slide is hidden and hiddenSlides is on.

NameRequiredDescriptionDefault
notesNoRemove speaker notes. Default true.
commentsNoRemove comments. Default true.
thumbnailNoRemove the small preview picture stored in the file. Default true.
authorInfoNoRemove author, last modified by, company, manager and the revision list. Default true.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
hiddenSlidesNoDelete slides that are hidden when presenting. Default true.
customPropertiesNoAlso remove custom document properties. Default false.
documentPropertiesNoAlso clear title, subject, keywords, description and category. Default false.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the structured fields and annotations, the description details crucial behaviors: what is intentionally preserved (slide content, layout, and formatting), how the removal works (dropped parts used), and which elements constitute specific categories (author and company details plus revision list). This adds significant operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is logically structured, starting with the main function and ending with preservation guarantees and error handling. It is highly efficient in that every sentence conveys a necessary piece of information, though it is detailed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the detailed input schema, the description provides all the necessary context for an agent to understand the input requirements (pptx base64 format) and the consequences of the operation (what will or will not be cleaned, and what the file will look like after processing).

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?

Since schema coverage is 100%, the description is not strictly necessary for defining the parameters. However, it adds value by mapping abstract boolean flags to real-world PPTX attributes (e.g., mapping the `authorInfo` flag to 'author, last modified by, company, manager and the revision list').

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 its purpose is to strip unwanted elements and return a clean .pptx file in base64 format. It defines the output (clean PPTX) and the specific items it targets for removal (notes, comments, author details, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides crucial usage guidance by stating the default state for various flags (e.g., metadata removal is 'on' by default, document properties are 'off' by default). It also gives a clear failure condition: errors occur if every slide is hidden and hiddenSlides is set to true.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_compress_defaultA
Read-onlyIdempotent
Inspect

Compress a PowerPoint (.pptx) from freedailypro at the Default level, the sharpest: pictures are kept up to 220 dpi at JPEG quality 82, large photos get smaller, and nothing is converted from PNG to JPEG. Only pictures are re-saved (JPEG, PNG, BMP); text, layouts, charts, animations, audio and video are left exactly as they are, so the deck stays fully editable. Returns the smaller .pptx as base64 plus originalBytes, outputBytes, reductionPercent and the pictures changed. Errors with a plain reason (422) when nothing can get smaller, for example a deck with no pictures.

NameRequiredDescriptionDefault
maxDpiNoNever keep pictures sharper than this many dpi (48 to 300), on top of the level.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
removeNotesNoAlso remove speaker notes first. Default false.
removeThumbnailNoAlso remove the stored preview picture. Default false.
removeUnusedLayoutsNoAlso remove slide layouts no slide uses, and the pictures only they carry. Default false.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag read-only/non-destructive/idempotent, and the description adds substantial context beyond them: exactly what is re-saved (JPEG, PNG, BMP pictures), what is untouched (text, layouts, charts, animations, audio, video, so the deck stays editable), and the 422 failure mode. It also states the return payload, which is genuinely useful given no output schema 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?

Front-loads the core action and level settings, then layers preservation, return values, and errors in a logical order with no filler. It reads as a dense run-on paragraph that could be split, but every sentence carries real information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned fields (base64 pptx, originalBytes, outputBytes, reductionPercent, pictures changed) and the error behavior. For a compression tool with rich annotations, nothing an agent needs to invoke it 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 coverage is 100% and all five parameters are documented in-schema, so the baseline is 3. The description mentions the 220 dpi cap and the removal of nothing specific, but never explains maxDpi, removeNotes, removeThumbnail, or removeUnusedLayouts, so it adds little param 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?

States a specific verb (compress) and resource (PowerPoint .pptx) plus the exact level and its concrete settings (220 dpi, JPEG q82, no PNG→JPEG conversion). Because siblings are named pptx_compress_medium/strong/size, calling out 'the Default level, the sharpest' cleanly disambiguates it 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear picture of when this level is appropriate (sharpest output, preserves editability) and explains the error condition (422 when nothing can get smaller). It lacks explicit routing such as 'use pptx_compress_strong for smaller files' or 'pptx_compress_size to hit a target', leaving level selection partly inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_compress_mediumA
Read-onlyIdempotent
Inspect

Compress a PowerPoint (.pptx) from freedailypro at the Medium level: pictures up to 150 dpi at JPEG quality 72, and opaque PNG photos are re-saved as JPEG when that is under half the size. Good for email. Only pictures are re-saved (JPEG, PNG, BMP); text, layouts, charts, animations, audio and video are left exactly as they are, so the deck stays fully editable. Returns the smaller .pptx as base64 plus originalBytes, outputBytes, reductionPercent and the pictures changed. Errors with a plain reason (422) when nothing can get smaller, for example a deck with no pictures.

NameRequiredDescriptionDefault
maxDpiNoNever keep pictures sharper than this many dpi (48 to 300), on top of the level.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
removeNotesNoAlso remove speaker notes first. Default false.
removeThumbnailNoAlso remove the stored preview picture. Default false.
removeUnusedLayoutsNoAlso remove slide layouts no slide uses, and the pictures only they carry. Default false.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses exactly what is changed (JPEG/PNG/BMP pictures re-saved) and what is preserved (text, layouts, charts, animations, audio, video, editability). It also documents the return payload and the 422 error condition when no reduction is possible, which is valuable behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four tight sentences that front-load the core action and compression settings, then cover preservation, return values, and error behavior. Every sentence adds useful information 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?

There is no output schema, but the description explains the return payload (base64 PPTX plus originalBytes, outputBytes, reductionPercent, and pictures changed) and the error case. Combined with full schema coverage and annotations, it is complete enough for an agent to call 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 all five parameters are fully documented in the schema. The tool description adds general context about compression behavior and return values but does not add 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Compress a PowerPoint (.pptx)') and pins down the exact behavior of the Medium level (150 dpi, JPEG quality 72, opaque PNG re-save rule). This level-specific detail distinguishes it from siblings such as pptx_compress_strong or pptx_compress_default 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 a clear use context ('Good for email') and implies the tradeoff level, but does not explicitly compare to sibling tools like pptx_compress_strong, pptx_compress_default, or pptx_compress_size. There are no stated when-not-to-use conditions beyond the implicit size tradeoff.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_compress_sizeA
Read-onlyIdempotent
Inspect

Compress a PowerPoint (.pptx) from freedailypro to a size you need, such as under 10 MB for an email or an upload form. Runs from the sharpest picture setting to the coarsest and returns the sharpest result that fits targetSize, with targetMet: true. If it cannot fit, you get the smallest file it can make with targetMet: false and a note. A deck already at or under the target is returned unchanged. Only pictures are re-saved (JPEG, PNG, BMP); text, layouts, charts, animations, audio and video are left exactly as they are, so the deck stays fully editable. Returns the smaller .pptx as base64 plus originalBytes, outputBytes, reductionPercent and the pictures changed. Errors with a plain reason (422) when nothing can get smaller, for example a deck with no pictures.

NameRequiredDescriptionDefault
maxDpiNoNever keep pictures sharper than this many dpi (48 to 300), on top of the level.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
targetSizeYesThe size to reach: a number of bytes, or text such as 10MB or 800KB (at least 1 KB)
removeNotesNoAlso remove speaker notes first. Default false.
removeThumbnailNoAlso remove the stored preview picture. Default false.
removeUnusedLayoutsNoAlso remove slide layouts no slide uses, and the pictures only they carry. Default false.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: it sweeps from sharpest to coarsest and returns the sharpest fit, falls back to smallest-file-with-targetMet:false, passes through already-small decks unchanged, and only re-saves pictures while leaving text, layouts, charts, animations and media untouched so the deck stays editable. The 422 failure mode with a plain reason is also disclosed, and nothing contradicts the readOnly/non-destructive hints.

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?

Front-loaded with the purpose and the size-target behavior, then results, then error handling. Dense but nearly every sentence carries information an agent needs; it is a single long block rather than scannable, though nothing is padding.

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?

No output schema exists, yet the description fully documents the return payload (base64 .pptx plus originalBytes, outputBytes, reductionPercent, changed pictures) and the targetMet flag. Input constraints like size/slide limits and unsupported legacy/password-protected files are covered by the schema, so nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics: how targetSize drives the level search, how maxDpi layers 'on top of the level', and what happens when the target is unattainable. It does not elaborate on the removeNotes/removeThumbnail/removeUnusedLayouts side effects beyond what the schema says.

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 and resource (compress a .pptx) and its distinctive scope: it targets a requested file size rather than a fixed compression level. It never names the level-based siblings (pptx_compress_default/medium/strong), so the differentiation is implied by 'targetSize' 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage context ('under 10 MB for an email or an upload form') and explains the outcome in each case: target met, target unreachable, already small enough, or 422 when nothing can shrink. It does not explicitly route to alternative compress tools when the user wants a fixed quality level instead of a byte target.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_compress_strongA
Read-onlyIdempotent
Inspect

Compress a PowerPoint (.pptx) from freedailypro at the Strong level, the smallest of the three: pictures up to 110 dpi at JPEG quality 58. Fine on screen, soft in print. Only pictures are re-saved (JPEG, PNG, BMP); text, layouts, charts, animations, audio and video are left exactly as they are, so the deck stays fully editable. Returns the smaller .pptx as base64 plus originalBytes, outputBytes, reductionPercent and the pictures changed. Errors with a plain reason (422) when nothing can get smaller, for example a deck with no pictures.

NameRequiredDescriptionDefault
maxDpiNoNever keep pictures sharper than this many dpi (48 to 300), on top of the level.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
removeNotesNoAlso remove speaker notes first. Default false.
removeThumbnailNoAlso remove the stored preview picture. Default false.
removeUnusedLayoutsNoAlso remove slide layouts no slide uses, and the pictures only they carry. Default false.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a read-only, non-destructive, idempotent operation, and the description adds substantial behavioral context beyond that. It explains that only pictures are re-saved, that text/layouts/charts/animations/media are untouched, that the deck remains editable, what is returned, and the 422 error condition when nothing can shrink.

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 action and level, then efficiently covers tradeoffs, preservation behavior, return values, and error handling. Every sentence contributes operational information without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with full schema coverage and annotations, the description supplies everything an agent needs: the compression level, quality tradeoff, what is preserved, what is returned, and the failure condition. No output schema is needed because the return shape is described in text.

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 is already documented in the schema. The description adds useful context about the Strong level's default picture handling, but it does not add meaning beyond the schema for the removal flags such as removeNotes or removeUnusedLayouts. 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 gives a specific verb and resource (compress a .pptx) and immediately identifies the compression level as Strong, the smallest of the three. It also states the concrete picture settings, so an agent can distinguish it from the default and medium compressors 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?

It provides a clear usage tradeoff: 'Fine on screen, soft in print.' This tells the agent when the Strong level is appropriate and when it is not. It does not explicitly name the default or medium siblings as alternatives, which keeps it just 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.

pptx_extract_chartsA
Read-onlyIdempotent
Inspect

Get the data behind every chart of a PowerPoint (.pptx) from freedailypro: format xlsx (default; one workbook, a sheet per chart, base64), csv (a ZIP of CSV files, base64; workbooks true also adds each chart's own embedded workbook) or json (each chart's slide, title, type and table). Charts pasted as pictures have no data; errors (422) when the deck has no real charts.

NameRequiredDescriptionDefault
formatNoDefault xlsx
workbooksNocsv: also include the embedded workbooks. Default false.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real value beyond that with the 422 no-charts error and the picture-chart limitation, but omits anything about response size, latency, or what the caller does with a base64 blob. Solid but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the body is one very long run-on sentence with stacked parentheticals ('default; one workbook, a sheet per chart, base64') that is harder to scan than a short bulleted enumeration of the three formats would be. Dense rather than wasteful, but structure costs it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description does discharge that burden by describing exactly what each format returns plus the error case. Size and slide limits live in the schema, so nothing critical is missing, though a note on what base64 output looks like to consume could help.

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, but the description meaningfully extends the enum: xlsx is one workbook with a sheet per chart (base64), csv is a ZIP of CSVs in base64, json returns slide/title/type/table per chart, and it explains the workbooks flag's interaction with csv ('workbooks true also adds each chart's own embedded workbook'). This is genuine semantic added value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the data behind every chart of a PowerPoint (.pptx)') with the exact output shapes, which separates it cleanly from siblings such as pptx_extract_text, pptx_extract_images and pptx_extract_notes without needing to name 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?

Gives clear context for when the tool applies, plus implicit when-not guidance: 'Charts pasted as pictures have no data; errors (422) when the deck has no real charts' tells the agent not to expect results for picture-only decks. It stops short of explicitly routing between sibling extract_* tools, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_extract_imagesA
Read-onlyIdempotent
Inspect

Pull the pictures out of a PowerPoint (.pptx) from freedailypro as a ZIP (returned as base64), each file exactly as stored in the deck and named by slide, for example slide02_image-2-1.jpeg. Pictures that only the slide design uses (a logo on the master) are left out unless includeTemplatePictures is true; pictures on hidden slides are left out unless includeHidden is true. Errors when there are none.

NameRequiredDescriptionDefault
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
includeHiddenNoInclude pictures that appear only on hidden slides. Default false.
includeTemplatePicturesNoInclude pictures used only by the master or layouts. Default false.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish that this is a safe, read-only, idempotent operation. The description adds meaningful behavioral detail beyond annotations: output is a base64 ZIP, files are named by slide, template-only and hidden-slide pictures are excluded by default, and an error occurs when no pictures 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 front-loaded with the action and output format, then efficiently covers inclusion rules and error behavior. It uses only three sentences and each carries useful information for invoking the tool correctly.

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?

Because there is no output schema, the description appropriately explains the returned value as a base64-encoded ZIP and gives an example filename convention. Combined with the fully documented input schema, it covers the important behavior, though it could be slightly more explicit about the response envelope or ZIP contents.

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 three parameters, including fileBase64 constraints and the two boolean flags. The description mentions includeTemplatePictures and includeHidden and reinforces their default exclusion behavior, but adds little 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 states the specific action and resource: extracting pictures from a PowerPoint (.pptx) file and returning them as a base64 ZIP. It implicitly distinguishes itself from siblings like pptx_extract_text and pptx_extract_charts by focusing on pictures, but does not explicitly name or contrast with those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose and by the conditions for including template and hidden-slide pictures, but there is no explicit guidance on when to use this tool instead of sibling tools such as pptx_to_template or pptx_clean. It does explain that the tool errors when no pictures are found, which is a useful boundary condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_extract_notesA
Read-onlyIdempotent
Inspect

Get the speaker notes of a PowerPoint (.pptx) from freedailypro, slide by slide. format: txt (default), md, or docx (a Word file, returned as base64). Hidden slides' notes are skipped unless includeHidden is true. Errors when the deck has no speaker notes.

NameRequiredDescriptionDefault
formatNoDefault txt
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
includeHiddenNoInclude notes of hidden slides. Default false.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real behavior: hidden-slide notes are skipped by default, the call fails on note-free decks, and docx is returned as base64 rather than a file reference. Only the pagination/ordering of 'slide by slide' output is left 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?

Three short sentences, front-loaded with purpose, then output formats, then the hidden-slide and error behavior. No filler and nothing repeated from the annotations.

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 return-format burden and does so (txt default, md, docx-as-base64). The size/format limits and unsupported .ppt/password-protected cases live in the schema, so omission here is acceptable; only the structure of per-slide output is unstated.

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 earns above that by explaining what the 'docx' enum value actually produces (a Word file as base64) and restating the default and includeHidden semantics in prose, which the schema states only tersely.

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 and resource — get speaker notes from a .pptx — with the added scope qualifier 'slide by slide'. It is clearly distinct from pptx_extract_text or pptx_extract_images in substance, though it never names a sibling to draw the boundary 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?

Usage is implied by the resource (you extract notes when you want notes), and the 'errors when the deck has no speaker notes' precondition is useful. But there is no explicit routing to alternatives such as pptx_extract_text for slide body content, so an agent must infer when this is the wrong tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_extract_textA
Read-onlyIdempotent
Inspect

Get the text of every slide in a PowerPoint (.pptx) from freedailypro: titles, bullets (with their level) and tables, optionally with the speaker notes. format: txt (default), md or json (json returns slides with title, paragraphs, tables and notes, easiest to process). Hidden slides are skipped unless includeHidden is true. Charts and diagrams are not read (counted in the output instead). Errors when the deck has no text at all (a deck made only of pictures).

NameRequiredDescriptionDefault
formatNoDefault txt
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
includeNotesNoAdd each slide's speaker notes. Default false.
includeHiddenNoInclude hidden slides. Default false.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, yet the description still adds real substance: hidden slides are silently skipped by default, charts/diagrams are counted rather than omitted silently, and the tool errors on picture-only decks. That error condition in particular prevents wasted retries. It doesn't cover limits (50 MB / 500 slides live only in the schema), but the added behavioral context is genuine.

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 dense paragraph with no filler; the core action leads, followed by format, filtering, exclusions, and failure mode in a logical order. It is on the long side for a ten-second read, and could be broken into short lines for scannability, but no sentence is wasted.

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 does the work of describing the return shape (txt/md text, or json with slides/title/paragraphs/tables/notes) and the one failure mode. Size and slide-count limits are left entirely to the schema, and there's no pagination hint for 500-slide decks, so it stops just short of fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description goes past it by explaining what each switch implies semantically — default txt, json returning a structured slide model, and the default-false behavior of includeNotes/includeHidden. It reinforces rather than duplicates, which is the useful case.

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 ('Get the text') and a precisely scoped resource ('every slide in a PowerPoint (.pptx)'), then enumerates exactly what is extracted: titles, bullets with levels, tables, optional notes. An agent can immediately tell this is the text-extraction sibling of pptx_extract_charts / pptx_extract_images / pptx_extract_notes without opening a 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?

Gives concrete selection cues: use json 'easiest to process', includeHidden controls hidden slides, includeNotes pulls speaker notes, and charts/diagrams are explicitly out of scope. What's missing is naming the actual alternatives (pptx_extract_charts, pptx_extract_notes) so the agent doesn't have to infer the routing from the exclusion sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_find_replaceA
Read-onlyIdempotent
Inspect

Find and replace text across every slide of a PowerPoint (.pptx) from freedailypro, and get the edited .pptx back (base64). Matches inside a paragraph are replaced even when PowerPoint split the words into several runs; the formatting of the first run is kept. Speaker notes are searched too (includeNotes, default true); the slide master and layouts only when includeTemplate is true. Errors with 422 when nothing matches, so a wrong spelling is noticed.

NameRequiredDescriptionDefault
findYesThe text to look for
replaceNoThe new text. Empty removes the match.
matchCaseNoMatch upper and lower case exactly. Default false.
wholeWordNoMatch whole words only. Default false.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
skipSlidesNoSlide numbers to leave alone
includeNotesNoAlso change speaker notes. Default true.
includeTemplateNoAlso change the slide master and layouts (footers, company names in the design). Default false.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing implementation-critical traits: matches are found even when PowerPoint split a word into multiple runs, formatting of the first run is preserved, and a no-match condition raises 422 rather than a silent success. These are exactly the surprises an agent needs warned about before calling.

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 with the core promise front-loaded and no filler; the parenthetical defaults are brief restatements but read as scan anchors rather than padding.

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?

No output schema exists, yet the description covers the return type (base64 .pptx), error semantics (422 on no match), scope defaults, and run-splitting behavior. Combined with the schema's size/slide limits and file-type exclusions, an agent has everything needed to call this 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%, so the baseline is 3; the description still adds value by explaining what includeNotes and includeTemplate actually reach (speaker notes vs. master/layouts such as footers and design text). The note that the 422 fires when the find string misses adds per-parameter consequence that the schema cannot express.

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+resource (find and replace across every slide of a .pptx) plus the return value (edited .pptx as base64), which is enough to separate it from the generic find_and_replace and from pptx_replace_fonts. The scope 'every slide' is explicit and load-bearing.

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?

Clearly establishes the operating context: notes are in scope by default, master/layouts only with includeTemplate, and nothing-found yields a 422 so typos surface. It stops short of naming alternatives (find_and_replace for plain text, pptx_replace_fonts for typography), so the agent must infer when to prefer a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_fontsA
Read-onlyIdempotent
Inspect

List every font a PowerPoint (.pptx) from freedailypro uses, as JSON: name, how many places use it, which slides, whether the master/layouts/theme use it, whether it is the theme's heading or body font and whether it is embedded. Use it before pptx_replace_fonts.

NameRequiredDescriptionDefault
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds genuine value by enumerating exactly what the response contains (usage counts, slide lists, master/layout/theme usage, heading vs body role, embedding), which stands in for the missing output 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?

Front-loaded with the verb and resource, then a compact enumeration of return fields, then the workflow hint. The middle clause is dense but every element list is functional information, not 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?

With no output schema, the description does the work of describing the return payload field by field, and the schema covers input limits. Minor gap: no mention of failure modes (e.g., old .ppt or password-protected rejection is only in the schema) or of what 'freedailypro' implies.

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 fileBase64 parameter is documented there with size and format limits. The description adds nothing about the parameter beyond what the schema provides, 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?

Specific verb ("List every font") plus resource (PowerPoint .pptx), with the origin of the file clarified ("from freedailypro"). It is clearly distinguishable from pptx_replace_fonts, the write-side sibling it 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?

"Use it before pptx_replace_fonts" gives an explicit ordering constraint that tells the agent where this tool sits in a workflow. It stops short of saying when not to use it (e.g., for non-pptx formats), but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_html_slideshowA
Read-onlyIdempotent
Inspect

Turn a PowerPoint (.pptx) from freedailypro into ONE self-contained HTML file (returned as text): the slides as readable text with their pictures inlined, arrow-key navigation, a grid (G) and optional speaker notes (N). No external files or scripts. Charts, SmartArt, video, audio and animations are not carried over (notCarried lists them). Speaker notes are off unless includeNotes is true; hidden slides are left out unless includeHidden is true.

NameRequiredDescriptionDefault
lookNoDefault deck (the deck's own colours)
titleNoPage title. Default: the deck's title.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
includeNotesNoInclude speaker notes. Default false.
includeHiddenNoInclude hidden slides. Default false.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the readOnly/idempotent annotations: it declares the output is text-only with no external files or scripts, and explicitly lists what is NOT carried over (charts, SmartArt, video, audio, animations, surfaced via notCarried). That loss disclosure is exactly the kind of behavioral fact an agent cannot infer from annotations or 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?

One dense paragraph that front-loads the conversion and then layers exclusions and flag defaults; almost every clause carries information. The only wasted token is the odd 'from freedailypro' qualifier, which adds no actionable meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With all five parameters documented in the schema and no output schema, the description supplies the missing return-shape and fidelity information (text output, inlined images, omitted media types) plus flag defaults. An agent can call this correctly and set expectations about the result without further probing.

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 reinforces the defaults for includeNotes and includeHidden, but says nothing about the `look` enum (deck/light/dark) or `title`, leaving those entirely 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?

States a specific verb and a precise resource transformation: convert a .pptx into ONE self-contained HTML file returned as text. It also enumerates the resulting artifact (inlined images, arrow-key nav, G grid, N notes), so the agent knows exactly what it gets and can distinguish it from the many pptx_* siblings that mutate decks or the *_to_pptx tools that go the other direction.

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?

There is no named alternative, but none exists among the siblings, so the routing is unambiguous. It does give operational guidance on the two optional flags' default behavior (notes off unless includeNotes, hidden slides omitted unless includeHidden), though it never says when to prefer this over, say, pptx_extract_text for a plain text dump.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_mergeA
Read-onlyIdempotent
Inspect

Merge two or more PowerPoint (.pptx) files from freedailypro into one editable presentation (base64), slides in the order the files are given. Each deck keeps its own master, layouts and theme (several masters in one file), so slides keep the look they came with; set useFirstDesign true to put later decks on the first deck's layouts when they match by name. All decks must have the SAME slide size: otherwise it errors (422) naming the decks and their sizes, so fix the size first (in PowerPoint: Design, Slide Size). Comments of the second and later decks are left out. Up to 10 decks and 100 MB in all.

NameRequiredDescriptionDefault
filesYes
useFirstDesignNoPut every later deck on the first deck's layouts. Refused with the reason when they do not match.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent/non-destructive annotations: it discloses that each deck keeps its own master and theme, that comments from the second and later decks are dropped, that a size mismatch produces a 422 naming the decks, and that limits are 10 decks / 100 MB. No contradiction with annotations — the tool is a pure computation returning base64, consistent with readOnlyHint=true.

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?

Front-loaded with the verb, resource, and output format, and nearly every clause carries actionable information. It is a dense run-on paragraph with some noise ("from freedailypro", the parenthetical PowerPoint UI path) that could be trimmed or split for scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still states the return form (one editable presentation, base64) and names the failure mode and its fix. For a two-parameter merge tool, an agent has everything needed to call it correctly on the first attempt.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% (the top-level `files` array is undocumented), but the description compensates: it explains order significance, the per-deck and total limits, and the full semantics of useFirstDesign including the fallback behavior when layouts do not match by name. It adds real meaning beyond the schema without restating the per-item fields.

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?

Specific verb+resource+output format: merges two or more .pptx files into one editable presentation returned as base64. It is immediately distinguishable from siblings like pptx_split, pptx_organize, or pdf_merge 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear operational context: slides follow input order, all decks must share the same slide size or a 422 is returned, and useFirstDesign is opt-in. It never names an alternative sibling (e.g. pptx_organize) or states when not to use it, so it stops short of explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_organizeA
Read-onlyIdempotent
Inspect

Reorder, delete and duplicate the slides of a PowerPoint (.pptx) from freedailypro, returning a new editable .pptx (base64); the slide master, layouts and theme stay as they were and every slide keeps its notes, pictures, charts and tables. order: the final order as 1-based slide numbers, for example [3,1,2] (a number twice makes a copy). remove: slides to delete. duplicate: slides to copy, the copy placed right after the original. removeHidden: delete every hidden slide. Slide numbers always refer to the ORIGINAL deck. Errors when a number does not exist or every slide would be removed.

NameRequiredDescriptionDefault
orderNoFinal order, for example [3,1,2]. Default: the current order.
removeNoOriginal slide numbers to delete
duplicateNoOriginal slide numbers to copy (the copy follows the original)
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
removeHiddenNoDelete every slide that is hidden when presenting

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description explains that the tool returns a new editable base64 .pptx, preserves the slide master, layouts, theme, notes, pictures, charts, and tables, and errors when a slide number does not exist or every slide would be removed. This is substantial behavioral context, and it is consistent with readOnlyHint because the original file is transformed rather than mutated in place.

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 main action and output, then maps each parameter clearly. Despite being dense, every clause carries useful information about output preservation, ordering, or error behavior.

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 five-parameter mutation-style transformation with annotations but no output schema, the description covers what the tool returns, what is preserved, key parameter behavior, and error conditions. It could go further by describing the response envelope or edge-case interactions between order, remove, and duplicate.

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 important semantics: order is a final 1-based ordering where repeating a number creates a copy, remove and duplicate target original slide numbers, removeHidden deletes hidden slides, and all numbers refer to the ORIGINAL deck. It does not fully clarify interactions among order, remove, and duplicate, so it falls short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs and resource (reorder, delete, duplicate slides of a .pptx) and states the output is a new editable .pptx. It is clearly distinguishable from sibling tools such as pptx_merge, pptx_split, and pdf_organize.

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 establishes the use cases for organizing slides and explains the core parameters, so an agent can tell when to call it. However, it does not explicitly name alternatives such as pptx_split or pptx_merge, nor does it state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_redactA
Read-onlyIdempotent
Inspect

Black out sensitive text in a PowerPoint (.pptx) from freedailypro and get the redacted .pptx (base64). Matches are replaced by block characters in the file's own text (not covered), on slides, notes, the master and layouts, charts, SmartArt, comments, alt text and link targets. presets: email, phone, ssn, card, url, ip, money, date; plus terms (exact words), regexes, imageSlides ('all' or slide numbers: pictures replaced by a black stand-in) and imageByAlt. stripNotes, stripComments and stripMetadata remove those entirely. The result is read again and any remaining match is reported (remaining, remainingWhere). Text inside pictures, video and audio cannot be found; warnings say what could not be checked. A deck with no match is returned unchanged with changed false.

NameRequiredDescriptionDefault
notesNoSearch speaker notes. Default true.
termsNoExact words or phrases
presetsNoKinds of text to remove
regexesNoRegular expressions (JavaScript syntax)
templateNoSearch the master and layouts. Default true.
matchCaseNoDefault false
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
imageByAltNoBlack out pictures whose name or alt text matches the terms or patterns
stripNotesNoRemove all speaker notes
imageSlidesNoBlack out the pictures on these slides, or all
stripCommentsNoRemove all comments
stripMetadataNoRemove author and file details
dropChartWorkbooksNoRemove a chart's embedded workbook when it still holds a match. Default true.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/destructive=false, so the bar is lower, yet the description adds substantial behavior: matches are replaced in the file's own text, a verification pass reports 'remaining'/'remainingWhere', unsearchable content (pictures, video, audio) produces warnings, and an unmatched deck comes back unchanged with 'changed false'. That is exactly the operational context an agent needs before calling.

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 action and return value are front-loaded in the first sentence, followed by coverage scope, then parameter modes, then verification semantics. Dense but every clause carries distinct information; no filler or restatement of 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 13-parameter, no-output-schema tool, the description covers return shape (base64 deck, remaining/remainingWhere, changed), limitations, and most parameter modes. The gaps are minor: dropChartWorkbooks and matchCase are never mentioned, and no note on size/slide limits beyond what the schema states.

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 still adds meaning by explaining the coverage scope (slides, notes, master, layouts, charts, SmartArt, comments, alt text, link targets) and by clarifying imageSlides ('all' or slide numbers → black stand-in pictures) versus imageByAlt. It omits dropChartWorkbooks, matchCase, and the notes/template toggles, which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Black out sensitive text in a PowerPoint (.pptx)' — and names the return artifact ('get the redacted .pptx (base64)'). This clearly separates it from pptx_find_replace (which substitutes rather than blocks) and pdf_redact (different format).

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 enumerating matching modes (presets, terms, regexes, imageSlides, imageByAlt) and states the no-match outcome, so an agent can infer when it applies. However, it never says when to choose this over sibling tools such as pptx_find_replace or pdf_redact, and gives no explicit exclusions or preconditions beyond the schema's file constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_repairA
Read-onlyIdempotent
Inspect

Try to repair a damaged PowerPoint (.pptx) from freedailypro that PowerPoint reports as needing repair or will not open, and get a new .pptx (base64) plus what was fixed and what was lost. Mends a missing or wrong file list, a missing or inconsistent slide list, dead links to pictures, charts and layouts, duplicate slide ids and a damaged zip index; pieces that cannot be saved are dropped and listed. A healthy file is returned unchanged with changed false. Cannot open password-protected files or old .ppt files.

NameRequiredDescriptionDefault
fileBase64YesThe damaged .pptx, base64 encoded. Up to 50 MB.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations: it enumerates what is mended (file list, slide list, dead links, duplicate slide ids, zip index), discloses data loss ('pieces that cannot be saved are dropped and listed'), and states the no-op case ('healthy file returned unchanged with changed false'). It also discloses the input constraints that would cause failure.

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?

Front-loaded with purpose and trigger, then behavior, then limits. The middle sentence is a dense run-on list of repairable defects, but every clause carries real information, so only mild trimming would be possible.

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?

There is no output schema, and the description still explains the return shape (new .pptx as base64, a list of fixes, a list of losses, and a changed flag). Combined with the explicit failure modes, an agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter and schema coverage is 100% with a size limit already documented, so the baseline is 4. The description adds marginal value by implying the input must be an unencrypted modern .pptx rather than a .ppt, which is input-semantics information not 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?

States a specific verb and resource ('repair a damaged PowerPoint (.pptx)') plus the exact trigger condition ('PowerPoint reports as needing repair or will not open'). The scope is narrow enough to separate it from pptx_clean, pptx_compress_* and pdf_repair without needing to name 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?

Gives a clear when-to-use condition (file reported as damaged or won't open) and explicit when-not conditions (password-protected files, legacy .ppt). It does not name a sibling alternative for cases the agent might conflate, e.g. pptx_clean for merely bloated files, so it falls just 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.

pptx_replace_fontsA
Read-onlyIdempotent
Inspect

Swap fonts across a PowerPoint (.pptx) from freedailypro and get the new .pptx (base64): slides, notes, layouts, masters, the theme's heading and body fonts, charts and SmartArt. mapping is {"Old font": "New font"}. Embedded copies of replaced fonts are removed. Errors (422) when none of the named fonts is used. Text is not resized, so a wider font can make a line wrap.

NameRequiredDescriptionDefault
mappingYesOld font name to new font name, for example {"Calibri": "Arial"}
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: discloses that embedded copies of replaced fonts are removed, that a 422 is raised when no named font is present, and that text is not resized so wider fonts can reflow lines. The 'get the new .pptx' framing is consistent with readOnlyHint=true (original input untouched, new file 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?

Front-loaded with the action and coverage list, then constraints and side effects in short clauses; nearly every sentence carries information. The 'from freedailypro' attribution is the one piece of dead weight in an otherwise dense description.

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 correctly states the return value (new .pptx as base64) and covers the main failure mode and a formatting caveat. It omits how unmapped/unknown fonts are handled beyond the 422 case, but that is a minor gap for a two-parameter transform 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% and both parameters are described in-schema with an example mapping. The description's 'mapping is {"Old font": "New font"}' largely restates the schema example, though it does reinforce directionality (old to new). 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?

States a specific verb ('Swap fonts') and resource ('PowerPoint (.pptx)') and enumerates the exact scope where substitution applies: slides, notes, layouts, masters, theme heading/body fonts, charts and SmartArt. This clearly separates it from siblings like pptx_fonts (listing fonts) and pptx_find_replace (text replacement).

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 the 'mapping is {Old: New}' line, and the description gives one useful precondition ('Errors (422) when none of the named fonts is used'). However, it never explicitly names alternatives such as pptx_fonts or pptx_find_replace, nor states when-not-to-use, so the agent must infer routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_resizeA
Read-onlyIdempotent
Inspect

Change the slide size of a PowerPoint (.pptx) from freedailypro and scale the content to match, returning the new .pptx (base64). preset 16x9, 4x3, 16x10, a4 or letter, or width and height with a unit. mode fit (default) keeps the shape of the content and centres it; fill covers the new area; stretch changes the shape. Fonts, line widths and spacing scale with the content unless scaleText is false. The result lists how many shapes now reach outside the slide. Errors (422) when the slides are already that size.

NameRequiredDescriptionDefault
modeNoDefault fit
unitNoUnit of width and height. Default in.
widthNoCustom width, with height
heightNoCustom height, with width
presetNoA standard size (landscape)
scaleTextNoScale text, lines and spacing too. Default true.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the readOnly/idempotent annotations: mode semantics (fit keeps shape and centres, fill covers, stretch distorts), that fonts/lines/spacing scale unless scaleText is false, that the response includes a count of shapes now outside the slide, and the 422 no-op error. This is the kind of behavioral detail an agent cannot infer from structured fields.

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?

Tight and front-loaded: purpose first, then sizing options, then mode/font behavior, then outcome and error. The stray 'from freedailypro' clause is noise that doesn't earn its place, but overall density is high.

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 compensates by stating what is returned (new base64 pptx plus an out-of-bounds shape count), and input limits live in the schema. A brief note on error payload shape or original-file preservation 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.

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 goes further by enumerating presets (16x9, 4x3, 16x10, a4, letter), tying width/height to a unit, and explaining mode and scaleText effects rather than just naming defaults.

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 ('Change the slide size of a PowerPoint (.pptx)') plus the immediate consequence (scale content, return the new file). It is unmistakable against siblings like pptx_compress_* or pptx_split, which act on other aspects of the same file type.

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?

Explains concrete usage paths: pick a preset or supply width/height with a unit, and choose a mode. It also warns that a 422 is returned when the deck is already the target size, which steers callers away from a pointless call. It doesn't name a sibling alternative, but for a resize operation there isn't an obvious one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_slide_numbersA
Read-onlyIdempotent
Inspect

Add slide numbers to a PowerPoint (.pptx) from freedailypro, or remove them, and get the new .pptx (base64). The numbers are real slide-number fields, so they follow when slides move. Slides that already have a number are left alone. 'of-total' writes the total as plain text (PowerPoint has no total field). mode remove takes off the numbers the slides themselves carry (not those on the master).

NameRequiredDescriptionDefault
modeNoDefault add
sizeNoPoints. Default 12.
colorNoHex colour, for example 595959
formatNo3, Slide 3 or 3 / 12. Default number.
startAtNoNumber of the first slide. Default 1; 0 makes the second slide 1.
positionNoDefault bottom-right
skipFirstNoLeave the first slide without a number
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior, but the description adds substantive context: real slide-number fields follow slides, existing numbers are left alone, 'of-total' is plain text because PowerPoint lacks a total field, and remove is slide-level only. These are meaningful behavioral details beyond structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded, compact, and mostly free of waste. The phrase 'from freedailypro' is minor marketing noise, but it does not obscure the core instructions.

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 an eight-parameter transformation tool with no output schema, the description covers the purpose, output form, and key behavioral nuances well. Some edge-case or error behavior is left to the schema, but the critical agent-facing context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the baseline is 3. The description adds useful meaning for specific parameter choices, especially format=of-total and mode=remove, while leaving most other parameter details to 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 states specific verbs (add/remove slide numbers) and the resource (.pptx), and says it returns a new base64 file. It is clearly distinguishable from PDF and other PPTX siblings by format, 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the add/remove modes and clarifies that remove targets slide-level numbers, not master numbers. However, it does not explicitly state when to choose this tool over sibling PDF/PPTX tools or give broader usage exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_splitA
Read-onlyIdempotent
Inspect

Split a PowerPoint (.pptx) from freedailypro into several presentations, returned as ONE ZIP (base64) of .pptx files, each a complete editable deck keeping its own slides' notes, pictures, charts and tables. mode: each (one file per slide; default), every (every N slides, give every), or range (ranges such as '1-3,5,8-': one file per range, or one file with all of them when rangesAsFiles is false). At most 100 files. Errors name the slide numbers that do not exist.

NameRequiredDescriptionDefault
modeNoDefault: range when ranges is given, every when every is given, otherwise each.
everyNoevery mode: slides per file, for example 5
rangesNorange mode: comma-separated slides or ranges, for example 1-3,5,8- (8- means 8 to the end)
fileNameNoBase name for the files inside the ZIP, for example talk.pptx gives talk_slide-01.pptx
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
rangesAsFilesNorange mode: true (default) makes one file per range; false puts every chosen slide into one file.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety bar is met; the description adds valuable behavior beyond that: output is a base64 ZIP of full editable decks, the 100-file cap, and that errors name nonexistent slide numbers. It does not discuss size limits itself (those sit in the schema), keeping it just under a 5.

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?

Front-loads the core action and output format, then mode behavior, then limits and errors — a logical order with no filler. It is a single dense paragraph with parenthetical nesting, which is slightly harder to scan than a bulleted or sentence-per-idea layout.

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 correctly spells out the return value (base64 ZIP of .pptx files) and per-file contents (notes, pictures, charts, tables). Input constraints like 50 MB / 500 slides live in the schema, so the only mild gap is not restating those limits in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents mode defaults, 'every', 'ranges' syntax, and 'rangesAsFiles'. The description restates mode semantics and the '1-3,5,8-' range example, adding little syntax beyond the structured fields, 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 ('Split') and resource ('PowerPoint (.pptx)') plus the exact output shape (one ZIP, base64, of complete editable .pptx decks). The file-type and split semantics distinguish it from siblings like pptx_merge and pdf_split without needing 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the three modes and their selection logic ('each' default, 'every N', 'range'), and notes the 100-file cap, which gives real guidance on which mode to pick. It stops short of saying when to prefer this tool over alternatives such as pptx_organize or pptx_extract_*, so it is clear context without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_to_templateA
Read-onlyIdempotent
Inspect

Turn a PowerPoint (.pptx) from freedailypro into a .potx template (base64) and optionally change its theme: colors is {dk1, lt1, dk2, lt2, accent1..accent6, hlink, folHlink} as six-digit hex, plus headingFont, bodyFont and the theme name. keepSlides all, first or none. format pptx gives a re-themed deck instead. Shapes with their own fixed colour or font do not follow the theme; fixedColorShapes and fixedFontRuns count them. The .potx has been checked in LibreOffice, not in desktop PowerPoint.

NameRequiredDescriptionDefault
nameNoThe theme's name
colorsNoTheme colours by key, hex without #
formatNoDefault potx
bodyFontNo
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
keepSlidesNoDefault all
headingFontNo
removeNotesAndAuthorNoRemove notes, comments and the author's name from the kept slides

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds genuinely useful behaviour beyond the readOnly/idempotent annotations: theme inheritance gaps for fixed-colour shapes and fixed font runs, and the caveat that output was validated in LibreOffice rather than desktop PowerPoint. But fixedColorShapes and fixedFontRuns are referenced as if they were outputs with no output schema to confirm that, leaving the agent guessing. No notes on failure modes, size/time behaviour, or what the base64 payload 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?

Front-loaded with the core transformation, then progressively the theme model, then the slide-retention and caveats. Efficient overall, though the second sentence is a long run-on that crams the colour key list, fonts and theme name into one clause chain.

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 8 parameters, a nested object and no output schema, the description covers the transformation and theme model adequately. It falls short on the return side: fixedColorShapes and fixedFontRuns are mentioned without saying they are response fields, and no return shape is described at all. It also omits the size/slide limits that the schema carries for fileBase64.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the description fills a real gap: the colors object is only declared as free-form additionalProperties in the schema, while the description enumerates the exact keys (dk1, lt1, dk2, lt2, accent1..6, hlink, folHlink) and the six-digit hex format. It also clarifies headingFont/bodyFont/name roles and the keepSlides semantics. removeNotesAndAuthor is left entirely to 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 concrete verb+resource+output format: convert a .pptx into a .potx template (base64), with optional theme re-theming. It distinguishes the potx path from the pptx variant ('format pptx gives a re-themed deck instead'). It never names or differentiates against neighbors like pptx_clean or csv_to_pptx, and the 'from freedailypro' qualifier is unexplained noise.

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?

Gives clear in-tool branching: choose format=pptx when a re-themed deck is wanted instead of a template, and keepSlides all/first/none controls slide retention. It also flags a real exclusion (shapes with fixed colour/font won't follow the theme) so the agent knows when the result will be partial. No guidance on when to pick this over sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pptx_watermarkA
Read-onlyIdempotent
Inspect

Stamp a text watermark (such as DRAFT or CONFIDENTIAL) or a picture on the slides of a PowerPoint (.pptx) from freedailypro, or remove the watermarks this tool made, and get the new .pptx (base64). Give text, or pictureBase64 (PNG or JPEG) for a picture. It sits behind the slide content by default.

NameRequiredDescriptionDefault
boldNoDefault true
fontNoDefault Arial
modeNoDefault add
sizeNoPoints, or auto to fit the slide. Default auto.
textNoThe watermark words, for example DRAFT
colorNoText colour, hex. Default 808080.
layerNoDefault behind
placeNoDefault center
slidesNoSlides to mark. Default all.
opacityNoPercent opaque. Default 30.
rotationNoDegrees; negative rises to the right. Default -45 for text.
fileBase64YesThe presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported.
widthPercentNoPicture width as a percent of the slide. Default 50.
pictureBase64NoA PNG or JPEG, base64, instead of text

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive/idempotent, and the description adds real context beyond them: the output is a new .pptx returned as base64, the watermark is placed behind slide content by default, and removal only applies to marks this tool made. Size and slide-count limits are left to the schema rather than restated.

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, front-loaded with the core action and return value, with the parameter choice and default layer following in priority order. Only minor waste in the vendor phrase 'from freedailypro'.

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 14-parameter, no-output-schema tool, the description covers what the operation produces (a new base64 .pptx) and the main behavioral default. It does not summarize the file-size/slide-count constraints or the add-vs-remove mode interplay, though those are documented in the 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%, so the baseline is 3; the description still adds value by explaining the either/or relationship between 'text' and 'pictureBase64' and by confirming the default 'behind' layer behavior, which an agent might otherwise have to infer from the enum.

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 — stamping a text or picture watermark onto .pptx slides — and also covers the inverse operation (removing watermarks this tool created). The explicit '.pptx' format plus the stated base64 return value make it distinguishable from format siblings like 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent how to pick the two operating paths: give 'text' for a wordmark, or 'pictureBase64' (PNG or JPEG) for an image, and it scopes removal to watermarks this tool made. It stops short of naming alternatives (e.g., use pdf_watermark for PDFs) or stating prerequisites explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publishing_isbnC
Read-onlyIdempotent
Inspect

ISBN checker and converter

NameRequiredDescriptionDefault
isbnYesAn ISBN-10 or ISBN-13, with or without hyphens or spaces, optionally written with an ISBN prefix.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that: no info on whether validation is local vs. registry lookup, what happens on an invalid ISBN, or how normalization (hyphens, ISBN prefix) is handled.

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?

It is short and front-loaded, but its brevity comes from omission rather than economy — four words that leave the core behaviors (validation criteria, conversion output) entirely unstated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain what the tool returns, and it does not: an agent cannot tell whether it gets a boolean, a normalized ISBN, both formats, or an error. For a checker/converter tool that is a material 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 parameter fully documents accepted formats (ISBN-10/13, hyphens/spaces, optional prefix). The description adds no semantics beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"ISBN checker and converter" names a resource (ISBN) and two verbs (check, convert), so the general purpose is inferable. But it doesn't say what validation means in practice (checksum? registration?) or what conversion target is produced (ISBN-10 to ISBN-13?), and it makes no attempt to distinguish itself from the other publishing_* 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?

There is no statement of when to use this tool, when not to, or what alternative exists among the publishing siblings. An agent must guess whether this is the right tool for validating a submitted ISBN vs. converting one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publishing_kdp_descriptionC
Read-onlyIdempotent
Inspect

Book description HTML formatter

NameRequiredDescriptionDefault
htmlNoHTML to clean to the tags KDP allows; what was removed or changed is reported.
textNoPlain text; blank lines make paragraphs. Send text or html (html wins when both are sent).
headingNoTag used for headings. Default h4.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the agent knows the safety profile. The description itself adds nothing beyond that — it doesn't disclose that unsupported tags are stripped, that removals are reported back, that html takes precedence over text, or whether the operation is lossy. With annotations carrying safety, the missed opportunity is behavioral detail about the transformation.

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?

It is certainly short — four words — but this is under-specification rather than economy, and there is no front-loaded statement of behavior, input precedence, or return value. Nothing is wasted because almost nothing is said, which is not the same as well-structured brevity.

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 transformation tool with three optional parameters and no output schema, so the description must explain what comes back (cleaned HTML plus a report of changes) and how html/text interact. It explains none of that; the schema fields do, but the top-level description leaves the agent without a mental model of the call or its 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 description coverage is 100%: the schema documents that html is cleaned to KDP-allowed tags with removals reported, that text uses blank lines as paragraph breaks, that html wins on conflict, and that heading defaults to h4. The description contributes no parameter meaning at all, so baseline 3 applies — the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is a nominalized fragment, 'Book description HTML formatter', that essentially restates the tool name (publishing_kdp_description). It never says what formatting means concretely (sanitizing/cleaning HTML to KDP's allowed tag set), and the word 'KDP' appears only in the name, not the description. An agent gets a topic, not a specific verb+resource statement.

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 when-to-use, when-not-to-use, or alternative guidance is given. The snippet could plausibly be confused with an HTML-escaping utility or a Markdown converter, and nothing in the description tells the agent which situation selects this tool. The sibling tools (isbn, onix, royalty, spine_width) are unrelated, so no routing confusion there, but there is still zero usage framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publishing_onixD
Read-onlyIdempotent
Inspect

publishing onix

NameRequiredDescriptionDefault
isbnYesThe ISBN-13 (978 or 979, valid check digit), hyphens allowed. An ISBN-10 is rejected with the ISBN-13 to use.
titleYesThe product title.
pricesNo
pubDateYesPublication date as YYYY-MM-DD, YYYY-MM or YYYY, and a real calendar date. Anything else is reported as an error issue (422).
audienceNoONIX audience code: 01 general/trade, 02 children/juvenile, 03 young adult, 04 primary and secondary education, 05 college/higher education, 06 professional and scholarly. Default: not stated.
languageNoThree-letter ISO 639-2/B language code in lower case, for example eng, fre, ger, spa. Default eng. Anything else is reported as an error issue (422).
subjectsNo
subtitleNo
pageCountNoNumber of pages as digits, 1 to 999999, written as text. Anything else is an error issue (422); print forms without it get a warning.
publisherYes
territoryNoWORLD, or two-letter country codes separated by spaces, for example US CA GB. Default WORLD. Anything else is an error issue (422).
descriptionNoThe main description; a warning when missing.
productFormNoONIX product form: BC paperback (default), BB hardback, EA digital download (written with form detail E101, EPUB).
availabilityNoONIX product availability code (code list 65). Default 20 (available). 10 not yet available, 40 not available.
contributorsYesAt least one named contributor.
shortDescriptionNoUp to 350 characters.

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered and the description does not contradict it. However, the description adds nothing beyond that: it never says what the tool returns (an ONIX 3.0 XML record? a validation report?), whether warnings versus error issues are surfaced, or how the output is delivered. With the annotation bar lowered, this is still an empty disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

This is not conciseness but under-specification: two words with no front-loaded purpose statement and no structure. There is nothing to trim, but nothing that earns its place either.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 16-parameter tool with 5 required fields that constructs ONIX metadata for a book demands substantial description: what gets produced, whether the output is a downloadable XML file or inline payload, and how warnings differ from error issues. None of that is present, and there is no output schema to compensate.

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 75% and the schema documents the tricky semantics itself, including ISBN-13 check digits, price type 01 vs 02 defaults, BISAC/Thema codes, and error-issue 422 behavior. Per the baseline rule, the rich schema carries this dimension; the description contributes nothing, leaving only the minor undocumented fields (subtitle, publisher) uncovered. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is literally the tool name with a space: "publishing onix". It restates the identifier without a verb or resource statement, so an agent cannot tell whether it validates ONIX data, generates an ONIX XML feed, or looks up ONIX codes. Siblings like publishing_isbn, publishing_print_royalty, and publishing_kdp_description are not distinguished from it at all.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, no when-not-to-use, and no mention of any alternative. An agent choosing among publishing_isbn, publishing_kdp_description, publishing_spine_width, and this tool receives zero routing signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publishing_print_royaltyC
Read-onlyIdempotent
Inspect

Print cost and royalty calculator

NameRequiredDescriptionDefault
pagesYesPage count, 1 to 2000.
methodYesrate: you earn percent of the list price. wholesale: percent is the discount given to retailers and you earn the rest.
percentYesThe royalty rate (method rate) or the retailer discount (method wholesale), 0 to 100.
listPriceYesThe list (cover) price per copy, 0 or more. At 0 nothing is earned, so the royalty is the printing cost as a loss.
fixedChargeYesFixed printing charge per copy, in your currency (0 or more).
upfrontCostNoOne-off cost (editing, cover, ISBN), 0 or more. When given, copiesToRecoverUpfront is how many copies earn it back; null when each copy earns nothing.
perPageChargeYesPrinting charge per page, in the same currency (0 or more). Printing cost per copy = fixedCharge + perPageCharge x pages.
targetRoyaltyNoThe royalty per copy you want to earn, 0 or more. When given, priceForTargetRoyalty is the lowest list price (to the cent) that earns it; null when the royalty share is 0.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds nothing beyond that — no mention that this is a pure offline computation over supplied rates, no indication of what the result contains (per-copy print cost, royalty, copies-to-recover, price-for-target) despite there being no output schema.

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?

Five words with no padding, so nothing needs trimming, but the extreme terseness is under-specification rather than concision. There is no front-loaded statement of what is returned or how inputs drive it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters (6 required), a mode-switching enum, and no output schema, the description should clarify the computation and the shape of the result. It does neither, leaving the agent to reverse-engineer the tool's behavior from the schema alone.

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 property descriptions are unusually rich: the rate/wholesale enum meaning, the printing-cost formula, and the null conditions for the derived fields are all documented in the schema. The description contributes no additional parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Print cost and royalty calculator" names the domain resource and the two computed quantities (cost, royalty), which is enough to guess it is a pure calculation tool. But it is a noun phrase with no verb and no differentiation from the publishing siblings (isbn, onix, spine_width), leaving the agent to infer the actual 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 statement of when to use this tool, when not to, or how it relates to any sibling. The agent gets no routing signal beyond the word "calculator".

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publishing_spine_widthC
Read-onlyIdempotent
Inspect

Book spine and cover size calculator

NameRequiredDescriptionDefault
dpiNoResolution used to give the cover size in pixels, a whole number from 72 to 1200. Default 300.
pagesYesPage count, a whole number from 1 to 2000. Printed books have an even count; an odd number returns a warning.
bleedInNoBleed in inches added on every outer edge, 0 to 1. Default 0.125.
platformNoPrinter the numbers are for. Default kdp. For kdp a warning is returned when pages is outside 24 to 828 (black and white, white paper); the other printers have no built-in page limits.
thicknessInYesPaper thickness in inches per page (one sheet is two pages), above 0 and at most 0.02, for example 0.002252 for KDP black and white on white paper.
trimWidthInYesTrim width of one page in inches, 2 to 14.
trimHeightInYesTrim height in inches, 2 to 14.
spineAllowanceInNoExtra width in inches added to (or, if negative, removed from) the spine, -0.5 to 0.5. Default 0.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety behavior is covered. The description adds nothing beyond them — it does not mention that warnings are returned for odd page counts or platform page limits (information present only in the schema), nor what the calculation produces.

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 fragment with zero waste and the core concept front-loaded. It is efficient, though its terseness leaves no room for the structure or caveats the tool actually needs.

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 tool with 8 parameters and no output schema, the description should at least indicate what is returned (spine width, full cover dimensions, pixel sizes at a given DPI, validation warnings). It says only that it is a calculator, leaving the agent to guess the output shape.

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 unusually rich (defaults, ranges, KDP page-limit warnings, example thickness values). With the schema doing all the work, the baseline of 3 applies; the description contributes no additional 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 phrase 'Book spine and cover size calculator' names a specific resource (spine/cover dimensions) that no sibling tool covers — isbn, onix, royalty, and description tools are clearly different concerns. It is clear what the tool does, though it stops short of explicitly differentiating itself from those 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?

There is no guidance on when to use this tool, what prerequisites exist (e.g., needing trim size, page count, and paper thickness), or how it relates to the sibling publishing tools. The agent must infer usage entirely from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_textB
Read-onlyIdempotent
Inspect

Text reverser — reverse characters, words or lines

NameRequiredDescriptionDefault
modeNo
textYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds that reversal can operate at character, word or line granularity, but says nothing about what happens when mode is omitted or what exactly 'reverse words' means (word order vs. per-word spelling).

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 line with zero filler; the operation and its variants come first. Nothing can be trimmed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, side-effect-free utility this is close to adequate, and annotations cover safety. Missing are the default mode and any indication of the return value (no output schema exists), which are the only things an agent still has to guess.

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 0%, so the description carries the burden; it does map to the three enum values of mode, which is real added meaning. However it never states the default mode when the optional parameter is omitted, nor any constraint on text, leaving a genuine gap.

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 (reverse) plus the resource (text) and enumerates the three reversal granularities, so an agent can immediately tell it apart from neighbors like sort_text, case_convert or fancy_text. It is clear but makes no explicit 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?

There is no guidance on when to pick this over sort_text or diff_text, and no prerequisites or exclusions. The only implied usage is 'when you need text reversed'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scale_recipeD
Read-onlyIdempotent
Inspect

Recipe scaler

NameRequiredDescriptionDefault
ingredientsYes
targetServingsYes
originalServingsYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds nothing beyond that – no mention of rounding/precision behavior, unit handling, or what happens to unsupported units.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words with no front-loadable content; the problem is under-specification, not verbosity. There is nothing for an agent to anchor on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A domain-specific computation tool with three required parameters, no output schema, and zero annotation coverage of return shape. The description does not indicate whether the result is a scaled ingredient list, a single factor, or how amounts are rounded.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and it does not. It never explains that ingredients is a list of {name, unit, amount} objects, that originalServings/targetServings must be positive, or how units are treated during scaling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Recipe scaler" restates the tool name without stating what scaling means (proportionally multiplying ingredient amounts by targetServings/originalServings) or what the tool returns. It is effectively a tautology of the title with no differentiating detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives. Siblings include planning_grocery_list and planning_event_budget, which touch food quantities; the description does not say whether this tool feeds into those or stands alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

schema_jsonldC
Read-onlyIdempotent
Inspect

Schema generator — Article, FAQ, Organization JSON-LD

NameRequiredDescriptionDefault
dataYes
typeYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, read-only, idempotent, non-destructive, closed-world operation. The description adds that the output is JSON-LD for three schema types, but it does not clarify data payload requirements, validation behavior, or output structure. With annotations carrying the safety profile, this is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, with no wasted words. However, the sentence-fragment style is terse to the point that useful parameter guidance is omitted.

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 tool requires a structured `data` object plus a type, has no output schema, and has zero schema description coverage. The description does not explain the expected payload shape, required fields for Article/FAQ/Organization JSON-LD, or what the generated result looks like, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needs to compensate but largely does not. It mentions the three type values, though those are already captured by the enum, and it does not explain what the required nested `data` object should contain for each schema type.

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 and resource: a schema generator producing JSON-LD for Article, FAQ, and Organization types. This is clearer than a bare title, but it does not explicitly distinguish itself from nearby SEO-oriented siblings such as generate_meta_tags or publishing_onix.

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 supported schema types imply some usage context, but there is no explicit when-to-use guidance, no prerequisites, and no mention of when another tool would be more appropriate. The agent must infer the use case from the type list alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

security_barcode_code128C
Read-onlyIdempotent
Inspect

Code 128 barcode

NameRequiredDescriptionDefault
textYes
formatNo
heightNo

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that — no note on output format behavior, character-set limitations, or what the returned payload 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but this is under-specification rather than conciseness — a three-word fragment that conveys essentially no information beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 0% parameter coverage, the description would need to explain input constraints and return shape; it explains neither. An agent cannot tell what calling this produces or what values 'format' and 'height' control.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden of explaining the three parameters, and it explains none. The parameter names (text, format, height) are somewhat self-describing and the schema carries a regex pattern and enum, but no meaning is added by the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Code 128 barcode' merely restates the tool name and title, naming a symbology without a verb. It does not say the tool generates/renders a barcode image or string, nor how it differs from the sibling security_qr.

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 indication of when to use this versus security_qr or other output-formatting tools. The only implied usage comes from the name itself, not from the description text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

security_qrC
Read-onlyIdempotent
Inspect

QR code generator

NameRequiredDescriptionDefault
textYes
formatNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the description carries a lower burden. Still, it adds nothing beyond them — no note on whether output is returned inline, encoded, or written somewhere, despite no output schema existing.

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?

Three words, front-loaded, zero waste — but under-specification rather than conciseness is the problem. Nothing here fails by length; it fails by omission.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 0% schema coverage, no output schema, and an unexplained enum, the agent lacks what it needs to call this correctly — especially the return format when 'json' is chosen. Annotations cover the safety profile, which keeps this above the floor, but the definition is otherwise incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and does not. Neither 'text' (what content is encoded, any length limits) nor 'format' is explained; 'json' in particular is ambiguous for a QR generator (base64 image vs metadata object) and an agent has no way to know what it will get.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The three-word description does imply a specific verb and resource (generate a QR code), which is more than a bare restatement of the opaque name 'security_qr'. However, it never distinguishes this from the neighboring security_barcode_code128, so an agent cannot tell which encoding tool to pick 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 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 this tool versus security_barcode_code128 or any other generator in the sibling list. No prerequisites, no exclusions, no alternative named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sort_textC
Read-onlyIdempotent
Inspect

Text sorter — sort lines or words, optional unique

NameRequiredDescriptionDefault
modeNo
textYes
orderNo
uniqueNo
caseSensitiveNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior. The description adds that unique deduplication is optional, but it omits how order direction and case sensitivity affect the result. With safety covered by annotations, this is adequate but thin.

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, so it is highly concise. However, its extreme brevity leaves important parameter details unstated, which is better assessed as a completeness gap than verbosity.

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?

There are five parameters with zero schema descriptions and no output schema. The description covers only mode and unique, leaving order direction, case sensitivity, and defaults unspecified. An agent cannot fully know how to configure sorting from this definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It names mode ('lines or words') and unique, but never explains order (asc/desc) or caseSensitive, leaving two parameters undocumented in both schema prose and description.

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 ('sort text') and scopes it to lines or words, with optional unique deduplication. This is clear enough to distinguish it from nearby text tools like reverse_text or case_convert, though it does not explicitly name 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?

There is no when-to-use or when-not-to-use guidance and no alternatives are named. 'sort lines or words' implies the operation but gives no selection criteria versus other text tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_regexD
Read-onlyIdempotent
Inspect

Regex tester

NameRequiredDescriptionDefault
textYes
flagsNo
patternYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so safety is fully covered structurally. The description adds nothing on behavior: it doesn't say whether all matches are returned, what flags are accepted, or what the result shape is. No contradiction, but zero added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words are certainly concise, but this is under-specification rather than economy — there is no front-loaded statement of purpose, input format, or result shape to anchor the call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/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 schema descriptions, no output schema, and no annotations explaining return values, the description does essentially none of the work needed to call it correctly. An agent would not know what a 'test' returns (match list? boolean? groups?).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description says nothing about the three parameters (pattern, text, flags). The 1-2000 char pattern limit and the free-form flags string (e.g., 'i', 'g', 'm') are completely undocumented anywhere, forcing the agent to infer semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Regex tester" merely restates the tool name (test_regex) and the annotation title ("Test Regex") without adding a verb, scope, or output description. It does not distinguish this tool from any text-processing sibling in a way beyond what the name already conveys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool, when not to, or what to use instead. With siblings like find_and_replace, diff_text, and text_similarity in the catalog, the agent is left to guess whether regex matching or plain replacement is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_ascii_artD
Read-onlyIdempotent
Inspect

ASCII art generator

NameRequiredDescriptionDefault
fillNoOptional single visible ASCII character used to draw the letters (default #).
fontNobanner (default): 5-row block letters. wide: the same letters twice as wide. box: your text as typed (any language or emoji, several lines) inside one box.
textYesText to draw. banner and wide: letters A-Z (lowercase is drawn as capitals), digits, space and . , ! ? - _ : ; ' " + = / \ ( ) @ # & * < >; accented Latin letters are drawn as the plain letter and listed in 'notes'; emoji and other scripts return 400 (use font box for those). Up to 6 lines of 20 characters, separated by \n. box: any text, emoji and every language included, up to 6 lines of 60 columns, kept in one box.

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that: no note on the 400 error behavior for unsupported characters, no mention of the notes field returned for accented letters, and no output format hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words is technically concise but reflects under-specification rather than efficient communication. There is no front-loaded structure because there is essentially no content beyond a label.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/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, a font enum with materially different behavior per mode, and no output schema, the description provides nothing an agent needs in order to call it correctly. Everything useful lives in the schema, and the description is completely inadequate as a standalone 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 description coverage is 100%, so the parameters (text, font, fill) are already thoroughly documented in the schema, including font enum behavior and the per-font character restrictions. The description contributes nothing to parameter meaning, but the baseline of 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"ASCII art generator" restates the tool name and title almost verbatim, offering no verb-plus-resource specificity beyond the name itself. It does convey the general domain, so an agent can guess it converts text into ASCII art, but nothing distinguishes it from siblings like fancy_text, text_banner_copy, or binary_ascii.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 this tool, no prerequisites, and no mention of alternatives such as fancy_text or text_banner_copy that also transform text into stylized output. The agent must infer everything from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_banner_copyC
Read-onlyIdempotent
Inspect

Banner sign copy

NameRequiredDescriptionDefault
ctaNoOptional call to action, for example 'Visit us today'. Default: Learn more.
messageYesWhat the banner should say, for example 'Grand opening this Saturday'. A long message is split into a headline and a subheadline.
maxCtaCharsNoCall to action length limit in characters (default 25).
maxHeadlineCharsNoHeadline length limit in characters (default 40).

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no indication of what gets returned (raw text vs. structured headline/CTA), how splitting behaves, or any limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single three-word phrase is short but not concise in any useful sense — it is under-specification rather than economy. Nothing is front-loaded because there is effectively no content to front-load.

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 content-generation tool with no output schema, the description should at least say what form the result takes and how the required message is transformed. It gives no indication of return shape, so the agent must call it blind to learn what it produces.

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 four parameters (message, cta, maxCtaChars, maxHeadlineChars) are already fully documented with examples and defaults. The description contributes no additional meaning, so the baseline of 3 applies rather than a penalty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Banner sign copy" essentially restates the tool name and title without a verb or any statement of what the tool actually produces (generated copy? formatted layout? constraints applied?). It does not distinguish it from siblings such as text_flyer_outline, text_invitation_copy, or text_menu_outline.

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 when-to-use guidance, no prerequisites, and no mention of the closely related copy/outline tools that an agent could confuse it with. The single phrase only hints at a domain (banner signs), leaving the agent to infer the use case entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_citationC
Read-onlyIdempotent
Inspect

Citation generator

NameRequiredDescriptionDefault
doiNoA DOI (10.1037/ppm0000185) or its link. Written as an https://doi.org/ link, and used instead of a URL.
urlNoThe web address. For a website it is the page; for a book, article or chapter it is used only when there is no DOI. https:// is added to a bare domain.
cityNoChicago 17th: publisher city for books and chapters. Ignored by APA and MLA, and by Chicago 18th.
pageNoThe page or page range you are quoting, for the in-text citation or Chicago note.
yearNoYear as 2025 or a string such as 2025 or n.d. A negative or non-year number is a 422. Left out: n.d.
issueNo
pagesNoA page range such as 45-60 (en dash, hyphen or em dash), or a single page, or an article number such as e0193972.
styleYesapa: APA 7th edition. mla: MLA 9th edition. chicago: Chicago notes-bibliography (see chicagoEdition).
titleYesThe title of the page, book, article or chapter, in the capitalization it should have. APA wants sentence case; MLA and Chicago want headline case. It is used as typed and advice is returned in notes.
volumeNo
authorsNoPeople, separated by semicolons, new lines or 'and': 'Smith, Jane; Lee, Kim' or 'Jane Smith and Kim Lee'. 'Last, First' is exact; 'First Last' takes the last word as the surname. Leave out when there is no author (the title leads) and use groupAuthor for an organization.
editionNoBooks: 2, 2nd or 2nd ed. All become 2nd ed.
editorsNoChapters: the book's editors, written like authors.
siteNameNoWebsites: the name of the site (left out in APA when it is the same as the author).
bookTitleNoChapters: the title of the book that holds the chapter (required for book-chapter).
publisherNoBooks and chapters: the publisher's name only.
accessDateNoYYYY-MM-DD. Websites: MLA prints it when sent (and, with today's date, when the page has no date); Chicago prints it only for undated pages; APA never does.
sourceTypeNoWhat is being cited. Default: journal-article when journalName is sent, book-chapter when bookTitle is sent, website when a url is sent without a publisher, otherwise book.
groupAuthorNoAn organization as the author, for example World Health Organization.
journalNameNoJournal articles: the journal's title (required for journal-article).
chicagoEditionNoChicago only. 17 (default): the edition the site's Citation Generator uses, publisher city included. 18: the newest edition (2024), no publisher city, up to 6 authors in a bibliography.
publicationDateNoFull date YYYY-MM-DD (websites): written as April 24, 2025 in APA, 24 Apr. 2025 in MLA, April 24, 2025 in Chicago. Replaces year.
siteOrPublisherNoOlder field: becomes siteName for a website, the journal name for a journal article, and the publisher otherwise.

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: it does not say the tool returns formatted citation strings plus advisory notes, nor that it performs no lookups (openWorld false). With the low bar set by annotations, a 2 reflects that no context whatsoever was contributed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words with no waste, but also no substance; brevity here is under-specification rather than conciseness. Nothing is front-loaded because nothing is stated.

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 23-parameter tool with rich schema and no output schema, the description should at minimum say it returns formatted citations and notes in the chosen style. It says none of that, leaving the return shape and the style-specific behaviors undescribed; only the schema annotations partially compensate.

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 91% across 23 parameters, with detailed per-field notes on styles, author formatting, dates and source-type defaults, so the schema does all the explaining. Per the baseline rule for high coverage, a 3 is appropriate even though the description contributes zero parameter meaning of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Citation generator' merely restates the tool name text_citation; it gives no specific verb, no resource detail, and nothing to distinguish it from other text tools. An agent learns only that citations are involved, not that it produces formatted citations in APA/MLA/Chicago from supplied metadata. That is tautology-level 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 when-to-use guidance, no prerequisites, no alternatives, and no note about which citation styles are supported though the schema enum reveals apa/mla/chicago. The agent must infer usage entirely from the parameter list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_csvD
Read-onlyIdempotent
Inspect

text csv

NameRequiredDescriptionDefault
rowsNo
textNo
headersNo
delimiterNo
operationYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered externally. The description adds nothing beyond that — it doesn't say whether parse returns rows, whether stringify quotes fields, or how delimiter defaults are applied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words is not conciseness but under-specification — there is nothing to be front-loaded because no content exists. Compare to the sibling naming style, which at least encodes direction (csv_to_pptx).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A tool with five parameters, a required operation enum and no output schema needs the description to carry the burden; instead it offers a label. An agent cannot reliably construct a parse call (which of text vs rows to supply) or interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters. The description does not explain the required operation enum values (parse, stringify, toJson), the conditional roles of text vs rows vs headers, or the delimiter semantics. The agent is left to infer everything from bare property names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"text csv" merely restates the tool name/title; it names a format but no verb or capability. The schema reveals parse/stringify/toJson operations, none of which the description mentions, so an agent cannot tell from the text alone what the tool actually does or how it differs from siblings like csv_to_pptx or format_json.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no alternatives, no prerequisites. With ~200 sibling tools in this server (many text/csv conversion utilities), an agent has no basis for selecting this one over csv_to_pptx or any other text tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_emoji_unicodeD
Read-onlyIdempotent
Inspect

Emoji unicode converter

NameRequiredDescriptionDefault
valueYes
operationYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so safety is covered. The description adds no behavioral context at all — not what the conversion produces (e.g., code points, escape sequences), not format examples, not edge-case handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three words are short but under-specified rather than concise; there is no structure, no front-loaded explanation, and nothing that tells an agent how to call the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero schema description coverage, no output schema, and a vague three-word description, an agent lacks the information needed to invoke this tool reliably — particularly which input format corresponds to which operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden of explaining the two required params, yet it never mentions 'operation' or 'value'. The enum hints at direction but the description does not explain what value should contain (a literal emoji vs. a code point string) for either operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Emoji unicode converter" essentially restates the tool name (text_emoji_unicode) without a specific verb or stated direction. It signals the domain but not what conversion is performed or what output looks like, and gives no differentiation from siblings like html_entities, url_encode_decode, or base64.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 this tool, no mention of the toUnicode vs fromUnicode choice, and no reference to any alternative tool. An agent must infer everything from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_flyer_outlineC
Read-onlyIdempotent
Inspect

Brochure flyer outline

NameRequiredDescriptionDefault
ctaYesThe action you want, for example 'Book your spot'.
dateNoOptional date, used as given.
timeNoOptional time, used as given.
offerYesWhat is offered, for example 'First lesson half price'.
titleNoOptional headline. Default: the offer.
contactNoOptional phone, email or website, used as given.
detailsNoOptional bullet points, used as given.
audienceYesWho it is for, for example 'new students'.
locationNoOptional place, used as given.

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the safety profile is clear. The description adds no behavioral context such as output format, constraints, or generation behavior, so it provides no value 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short phrase, but it is under-specified rather than concise. It fails to front-load any actionable information, leaving the agent without a clear understanding of the tool's operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters (3 required) and no output schema, the description should at least clarify what the tool produces and when to use it. Instead, it offers no context, making it inadequate for the tool's complexity even with rich schema and annotations.

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 documented including examples and defaults. The description adds no additional semantic meaning, so the baseline of 3 is appropriate when the schema fully covers parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Brochure flyer outline' is a noun phrase that essentially restates the tool name. It lacks a specific verb (e.g., 'generate') and does not distinguish this tool from siblings like text_menu_outline or text_invitation_copy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool, what inputs are appropriate, or how it differs from similar text-generation tools. The agent is left to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_invitation_copyD
Read-onlyIdempotent
Inspect

Invitation copy

NameRequiredDescriptionDefault
hostYes
whenYes
eventYes
whereYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. However, the description adds nothing beyond that—it says nothing about what is produced, tone, length, or format of the invitation copy, which is the core behavioral question for a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two words long, which is not conciseness but under-specification. There is no front-loaded content because there is essentially no content to front-load.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with four mandatory inputs and no output schema, the description is completely inadequate—it explains neither the inputs nor the shape of the generated copy an agent should expect back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are 4 required parameters (event, host, when, where) at 0% schema description coverage, so the schema provides no meaning and the description compensates with nothing. The agent gets bare property names with no explanation of expected format (e.g. date/time format for 'when', full address vs venue name for 'where').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Invitation copy" merely restates the tool name (text_invitation_copy) with no verb or resource framing. An agent cannot tell whether it generates text, validates it, or formats it, and there is no differentiation from siblings like text_banner_copy or text_flyer_outline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance whatsoever on when to use this tool, when not to, or which sibling (e.g. text_flyer_outline, text_menu_outline, planning_guest_list) is the right alternative for invitation-adjacent tasks. The agent must guess entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_menu_outlineC
Read-onlyIdempotent
Inspect

Menu card outline

NameRequiredDescriptionDefault
venueYesRestaurant or cafe name.
sectionsYesMenu sections.
keepOrderNotrue keeps your section order. Default false: sections are put in the usual menu order (breakfast, starters, soups and salads, mains, sides, desserts, drinks).

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context whatsoever: not what the 'outline' output looks like, whether sections are reordered, or how plain-string items with embedded prices are treated—facts that only appear in the schema, not in prose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is only three words, which is concise but under-specified rather than efficient. There is no front-loaded statement of action or output form that would let an agent act without reading the schema.

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 tool that builds a structured menu card from venue + sections (with default reordering behavior), the description omits the output form entirely and there is no output schema to fall back on. The input schema is strong, but an agent cannot infer what 'outline' returns from the description alone.

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 itself richly documents venue, sections, item strings/prices, and keepOrder ordering semantics. The description adds nothing beyond this, so the baseline of 3 applies; it neither compensates nor detracts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Menu card outline' is a noun phrase that essentially restates the tool title 'Text Menu Outline' without a verb or stated outcome. It does not distinguish this from sibling outline/copy tools like text_flyer_outline or text_invitation_copy, nor does it say whether it formats input into an outline, renders a menu card, or validates structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 this tool, when not to, or which sibling to pick instead. An agent choosing among dozens of text_* and business_* generators has nothing to route on.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_paper_formatC
Read-onlyIdempotent
Inspect

Paper format guide

NameRequiredDescriptionDefault
textNoOptional paper text. When sent, the response also counts words and paragraphs and looks for the reference-list heading the style expects. The text carries no fonts or margins, so layout cannot be checked from it: use the site's Paper Format Checker on a .docx for that.
styleNoThe style to return formatting rules for: apa (7th edition), mla (9th) or chicago (Turabian/Chicago student-paper defaults). Leave out to get all three in `guides`.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no note on what is returned, that omitting `style` yields all three guides, or that the text path only does word/paragraph counts.

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?

Three words with zero waste, but also zero information — this is under-specification rather than disciplined conciseness. There is no front-loaded statement of what the tool returns or which style to pick.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and read-only, but with no output schema the description should at least say it returns per-style formatting rules. An agent must read the schema's `style` description to learn the `guides` return key and the omission 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% and both parameters are documented in detail, including the enum values and the caveat that layout cannot be checked from raw text. The description itself contributes no parameter meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Paper format guide" is a noun phrase that essentially restates the tool name (text_paper_format) and title (Text Paper Format) rather than stating a verb and resource. An agent can guess it returns formatting rules, but nothing distinguishes it from near-neighbors like text_citation or word_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 when-to-use, when-not-to-use, or alternative is named. The description gives no signal about how this differs from text_citation or check_grammar, leaving the agent to infer usage from the schema alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_product_descriptionC
Read-onlyIdempotent
Inspect

Product description writer

NameRequiredDescriptionDefault
nameYesProduct name, used as written.
audienceYesWho it is for, for example 'busy commuters'. A leading 'for' is fine.
benefitsYesWhat the product does for the buyer, in any form: 'keeps water cold', 'keep water cold', 'to keep water cold', 'keeping water cold', 'designed for comfort' or 'long battery life'.
featuresNoOptional specifications or details, same flexible wording as benefits.

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the baseline safety profile is covered by structured data. The description adds no behavioral context such as output format, tone, length, or generation constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At three words, the description is under-specified rather than concise. It is front-loaded only in the sense that there is almost nothing to front-load.

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 four-parameter text-generation tool with no output schema, the description should at least indicate that it generates a product description from the supplied name, audience, benefits, and features. It leaves the agent to infer the entire behavior and 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%, and the schema itself documents each parameter thoroughly, including examples for benefits and features. The description adds no parameter meaning beyond the schema, which is acceptable given the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Product description writer' essentially restates the tool name and title rather than stating a specific action, input, or output. It does not distinguish this tool from siblings such as publishing_kdp_description, ecommerce_etsy_listing_check, or generate_meta_tags.

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 this tool, when not to use it, or which sibling tools are alternatives. An agent must infer usage entirely from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_similarityC
Read-onlyIdempotent
Inspect

Text similarity

NameRequiredDescriptionDefault
aYesFirst text, up to 10,000 characters (longer is a 422).
bYesSecond text, up to 10,000 characters (longer is a 422).
phraseWordsNoWhen given (3 to 8), the response also has a `phrases` object: how much of each text sits inside phrases of this many words that both texts share (case and punctuation ignored). Shorter texts use shorter phrases. Compares the two texts with each other only; it is not a web plagiarism check.

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond that — it doesn't say what is returned (a score? per-field breakdown?) or how similar the texts must be to matter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two words is not conciseness but under-specification; nothing is front-loaded because there is no content to load. Every sentence that should earn its place is absent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the schema is rich, but with no output schema the description should at least indicate the shape of the result (a similarity metric) and that only the two supplied texts are compared. Neither is stated in the description itself.

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 three parameters, including the phraseWords behavior and 10,000-character limits, are fully documented in the schema. The description adds no parameter meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Text similarity" merely restates the tool name and does not state a verb or resource action — an agent cannot tell whether it computes a score, a ratio, or a diff. It also fails to distinguish itself from sibling diff_text or keyword_density.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus diff_text or keyword_density, and no mention of any preconditions. The only hint that it is not a web plagiarism check is buried inside the schema description of phraseWords, not the tool description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

text_user_manualD
Read-onlyIdempotent
Inspect

User manual writer

NameRequiredDescriptionDefault
tasksYes
productYes

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing behavioral – not whether it returns generated prose, its length/format, determinism, or limitations – leaving a generation tool behaviorally opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

There is no wasted text, but two words constitute under-specification rather than conciseness. Nothing is front-loaded because there is nothing to front-load.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, two undocumented required parameters, and no annotations explaining the return value, the description carries the full burden and delivers none of it. An agent cannot tell what it will get back (markdown? plain text? structured sections?) or how "product" and "tasks" interact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%: the two required parameters, "product" and "tasks" (an array of strings), have no descriptions anywhere. The description does not mention them at all, so an agent must guess what "tasks" means (steps to document? a to-do list?) and how it shapes the output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"User manual writer" only restates the tool name as a noun phrase; there is no verb establishing that it generates/drafts a manual, and no scope detail. An agent can guess the resource (a user manual) but not the action or output, and nothing distinguishes it from siblings like text_flyer_outline or text_product_description.

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 when-to-use, when-not-to-use, or alternative is mentioned. The phrase implies the domain (writing user manuals) but gives no conditions, prerequisites, or routing guidance versus the many other text-generation siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_encode_decodeD
Read-onlyIdempotent
Inspect

Url encoder

NameRequiredDescriptionDefault
textYes
actionYes
componentNo

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds nothing beyond that — no note on what percent-encoding rules apply, what happens to already-encoded input, or that the operation is selected entirely by the action parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but this is under-specification rather than concision — two words that convey less than the tool name alone. There is no front-loaded statement of what the tool returns or how the mode is chosen.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameter documentation, no output schema, and a bidirectional operation, the description leaves the agent without the information needed to call the tool correctly. It never explains the encode/decode switch or the component flag.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries full responsibility for three parameters, yet it mentions none. The action enum and the component boolean (full URL vs. single component behavior) are entirely undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Url encoder" names a resource but only half the capability — the schema's action enum shows the tool both encodes and decodes. It gives no way to distinguish this from near siblings like base64 or html_entities.

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 statement of when to use this versus base64, html_entities, or decode_jwt. The single phrase that does exist ('encoder') actively understates the tool's scope, so an agent could wrongly skip it for decoding.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_compressA
Read-onlyIdempotent
Inspect

Compress a video toward a target file size (targetFileSize such as 25MB; default half the original) -- two-pass encode, a floor bitrate is enforced below which quality degrades too much to be worth watching

NameRequiredDescriptionDefault
fileBase64Yes
targetFileSizeNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly/idempotent/non-destructive; the description adds genuinely new behavioral facts — a two-pass encode and an enforced floor bitrate below which quality becomes unwatchable. That warns the agent the target size may not be achievable, which annotations cannot convey. It does not say what the tool returns, but nothing contradicts 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence: purpose first, then the key parameter example and default, then the encode caveat. No filler, and the most decision-relevant information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no enum and no output schema, the description covers purpose, the optional parameter's format/default, and the key behavioral caveat. The remaining gap is the response shape (base64 payload vs. file reference) and whether the output may be returned larger than requested when the bitrate floor kicks in.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does for the only non-obvious parameter: targetFileSize gets an accepted format example ('25MB') and a documented default (half the original). fileBase64 is left unexplained, but its meaning is self-evident from the name.

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 and resource ('Compress a video toward a target file size'), which is unambiguous against siblings like video_convert or video_trim. It does not explicitly name alternatives, but the resource+verb pairing is distinctive enough that an agent can select it from the video_* family.

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: this is the tool to reach for when a video is too large. There is no explicit when-to-use/when-not guidance (e.g. versus video_convert with a bitrate setting, or re-compressing an already-small file), so the agent must infer the boundary conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_convertC
Read-onlyIdempotent
Inspect

Convert a video between formats (mp4/mp4-web/webm/mov)

NameRequiredDescriptionDefault
formatYes
fileBase64Yes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the annotation set: no quality/re-encoding tradeoffs, no output shape (does it return base64 or a URL?), no size or format-conversion limitations, and no indication of what happens to the original.

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 with zero filler; nothing redundant. It is efficient but so terse that it under-serves the schema's 0% coverage, so not a 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?

With no output schema and 0% parameter description coverage, the description should carry the burden of explaining input encoding and return values. It does neither, leaving the agent guessing about fileBase64 semantics and the conversion result format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the two parameters carry no schema descriptions. The description restates the format enum (already machine-readable) but never explains fileBase64 — whether it needs a data-URI prefix, whether it is the raw encoded file, or any size ceiling. That is the one non-obvious parameter and it goes undocumented.

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) and resource (video) with the target formats enumerated, so an agent can distinguish it from video_compress or video_to_gif at a glance. It does not explicitly name what those siblings do differently, which keeps it out of 5 territory.

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 statement of when to use this versus video_compress, video_extract_audio, or audio_convert. The agent must infer the selection condition from the tool name alone; no 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.

video_extract_audioB
Read-onlyIdempotent
Inspect

Extract a video's audio track as MP3

NameRequiredDescriptionDefault
fileBase64Yes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds only the MP3 output detail; it says nothing about accepted input video formats, base64 size limits, or whether the audio is re-encoded or copied. Useful but thin 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?

A single front-loaded sentence with zero filler, which is ideal structure. Its brevity is a strength here, though it borders on under-specification rather than wasteful verbosity.

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-param tool with annotations covering safety, the description covers the core operation. However, with no output schema and zero param coverage, an agent still lacks input format/size expectations and any note on output delivery (e.g., a download link or base64 return).

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?

One parameter at 0% schema coverage, and the description never mentions fileBase64 at all — no indication that it expects a base64-encoded video payload, nor any size or format constraints. The description fails to compensate for the schema gap.

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+resource ('Extract a video's audio track') plus the output format (MP3), which clearly separates it from siblings like video_convert or video_compress. It stops short of naming the nearest alternative explicitly, so not 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 intent is implied by the name and description — pull audio out of a video — but there is no explicit when-to-use / when-not guidance and no pointer to siblings such as video_convert if the user actually wants format conversion. Adequate but with clear gaps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_mergeA
Read-onlyIdempotent
Inspect

Merge multiple videos into one -- requires matching codec/resolution/frame rate across inputs

NameRequiredDescriptionDefault
filesBase64Yes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description adds genuinely useful preconditions (matching codec/resolution/frame rate), but omits critical merge behavior: whether input array order determines output order, output format, size limits, and whether base64 strings are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the purpose comes first and the constraint follows immediately.

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 no output schema, the description covers the core operation and its main precondition. It still leaves the agent guessing about return value, input ordering semantics, and encoding expectations, which are consequential for a merge 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 0% for the single parameter filesBase64, so the description must compensate. The format-matching constraint is input-related and helpful, but it never explains that filesBase64 expects base64-encoded video strings, that at least two are required, or that ordering matters.

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 (merge) and resource (multiple videos) plus the result (into one), which is unambiguous and distinct from video_trim, video_compress, video_convert. It stops short of explicitly contrasting with the nearest alternative (e.g., video_convert as a pre-step), so it lands at 4 rather than 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 matching codec/resolution/frame-rate clause implies a usage path (normalize with video_convert first if inputs differ), but the description never states when to use this tool versus alternatives, nor what to do when inputs mismatched.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_subtitleB
Read-onlyIdempotent
Inspect

Burn SRT subtitles permanently into a video

NameRequiredDescriptionDefault
srtYesSubtitle text in SRT format
fileBase64Yes

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, idempotentHint=true and destructiveHint=false, so the safety profile is covered; the description's addition of 'permanently' clarifies the effect is not a soft track but does create mild tension with destructiveHint=false (resolved only if the burn happens on a returned output copy). It says nothing about supported container/codec limits, whether a new file is returned, or input size constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single seven-word sentence with the action and scope front-loaded and zero filler. Nothing redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must convey return behavior and limits, yet it does not say whether a new video file (and in what form) is returned, what formats are accepted, or whether input size is capped. For a media-conversion tool with a mutation-like effect, that leaves meaningful 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 coverage is 50%: 'srt' is documented as SRT-format subtitle text, but 'fileBase64' is undocumented and the description does not clarify that it is the base64-encoded source video. The description only mirrors the SRT concept, so it fails to compensate for the coverage gap.

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 and resource ('Burn SRT subtitles ... into a video') and specifies 'permanently', which tells the agent the effect is baked in. However, it does not distinguish itself from the adjacent sibling generate_captions, so an agent could plausibly pick the wrong tool without opening either 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 use it versus alternatives (e.g., generate_captions for producing subtitles, video_convert for format changes). The only implicit cue is that the caller must already have an SRT, which is derivable from the schema rather than the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_thumbnailB
Read-onlyIdempotent
Inspect

Extract a video frame as a JPEG thumbnail

NameRequiredDescriptionDefault
atSecondsNo
fileBase64Yes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the output format (JPEG). It does not disclose how the thumbnail is returned (raw base64 image data vs. a URL), any size/quality defaults, or what happens when atSeconds exceeds the video length.

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 with zero filler. Its brevity is efficient, though the same economy contributes to the missing parameter and return-value detail captured in other dimensions.

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 extraction tool, the sentence states the core operation and output format, and annotations cover safety. However, with no output schema and no schema descriptions, the agent still lacks the input encoding contract and the return shape (base64 JPEG payload), which matters for calling it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the burden and it does not. It never explains that fileBase64 is the source video encoded as base64 (the one required parameter), nor that atSeconds selects the frame timestamp and defaults to 0. Only the vague phrase 'a frame' hints at the time parameter.

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?

Names a specific verb and resource combination: extract a video frame as a JPEG thumbnail. That is clearly distinct from siblings like video_to_gif, video_trim, or image_convert. It stops short of explicitly naming those alternatives, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage 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 versus video_convert, video_to_gif, or image_convert, and states no preconditions. An agent must infer usage entirely from the name and one-line purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_to_gifC
Read-onlyIdempotent
Inspect

Convert a video to an animated GIF -- two-pass palette encoding

NameRequiredDescriptionDefault
fileBase64Yes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, idempotent, non-destructive, closed-world read operation, so the description doesn't need to repeat that. It adds the two-pass palette encoding trait, which implies quality/performance characteristics, but says nothing about accepted input formats, size limits, or what the operation returns.

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 clause with zero filler; the core action and its technique are established immediately. It is efficient but extremely terse, leaving no room for the operational detail an agent needs.

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?

Video-to-GIF conversion is a non-trivial media operation with a binary payload parameter and no output schema, so the description should carry more weight. It omits input format expectations, output form, size/duration limits, and any mention of error behavior, leaving an agent under-informed for a file-upload call.

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 tool has one required parameter, fileBase64, with 0% schema description coverage, and the description offers no clarification of its expected form (raw base64 vs data URI), encoding constraints, or size limits. With a single undocumented param and no compensating text, the gap is meaningful rather than trivial.

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 and resource ('Convert a video to an animated GIF') and adds an implementation detail ('two-pass palette encoding') that makes the outcome concrete. It does not, however, distinguish itself from the sibling video_convert, so an agent must infer which is the intended path for GIF output.

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 statement of when to use this over video_convert, image_convert, or video_compress, and no prerequisites are given. The agent is left to infer usage entirely from the name and the word 'GIF'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_trimA
Read-onlyIdempotent
Inspect

Trim a video to a time range -- stream-copy, cuts snap to the nearest keyframe

NameRequiredDescriptionDefault
endSecondsYes
fileBase64Yes
startSecondsYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds genuinely new behavioral context by disclosing stream-copy (no re-encode) and keyframe-snapped cut points, which tells the agent the output is lossless but frame-imprecise. It stops short of describing the return payload (e.g., base64 video) or size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded clause plus an em-dash qualifier; the operation comes first and the fidelity caveat second, with zero 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 three-required-parameter transform with no output schema, the definition covers what the tool does and its precision tradeoff, but leaves the agent guessing about input encoding/size constraints and the shape of the returned trimmed video.

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 0%, so the description must compensate for all three parameters. It partially does: "time range" maps to startSeconds/endSeconds and the keyframe-snapping note usefully warns that those boundaries are approximate, but it says nothing about fileBase64 expectations, units, end-inclusivity, or out-of-range 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?

States a specific verb and resource ("Trim a video") plus the scope ("to a time range"), which cleanly separates it from video_compress, video_convert, and video_merge in the sibling list. An agent can identify the operation 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 is only implied by the verb — trim when you need a sub-range of a video. There is no explicit when/when-not guidance, no mention of alternatives such as video_convert for format changes or video_compress for size reduction, and no prerequisites stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

word_countB
Read-onlyIdempotent
Inspect

Word counter — counts words, characters, sentences, paragraphs and reading time

NameRequiredDescriptionDefault
textYesText to analyze
wordsPerMinuteNoReading speed (default 200)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds the specific metrics computed, but does not describe output shape, reading-time dependency on the wordsPerMinute parameter, or any other behavioral detail beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that lists the counted metrics with no filler. 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 simple two-parameter counting tool with full schema coverage and strong annotations, the description is largely complete. It could mention the return structure (e.g., an object of counts), but the absence of an output schema makes that a minor gap rather than a blocking 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 both parameters are documented in the schema. The description mentions reading time, which implies the wordsPerMinute parameter, but adds no syntax, defaults, 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?

States a specific verb ('counts') and a clear set of resources (words, characters, sentences, paragraphs, reading time). It is unambiguous what the tool does, though it does not explicitly differentiate itself from nearby text-analysis siblings such as analyze_readability or keyword_density.

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 when-to-use guidance, no exclusions, and no named alternatives. An agent must infer that this is the right tool for basic text statistics rather than a readability or keyword-density tool.

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.

  1. 1 tool update
    • Addedbusiness_donation_receipt
  2. 2 tool updates
    • Changedbusiness_invoice_totals9 fields changed
      • addedInput schema / properties / businessName
        Added value: +{
        +  "description": "Your business name. Sending businessName and clientName also returns the invoice as a document: result.document, result.text and, with includeDocx, a Word file.",
        +  "maxLength": 200,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / clientName
        Added value: +{
        +  "description": "Who the invoice is for. Needed with businessName for the document.",
        +  "maxLength": 200,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / currencySymbol
        Added value: +{
        +  "description": "Symbol printed before amounts in the document. Default $. The totals themselves are plain numbers.",
        +  "maxLength": 4,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / dueDate
        Added value: +{
        +  "description": "YYYY-MM-DD, a real date on or after invoiceDate (422 otherwise).",
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +  "type": "string"
        +}
      • addedInput schema / properties / includeDocx
        Added value: +{
        +  "description": "true also returns the invoice as a Word file in result.docx (filename, contentType, base64). Needs businessName and clientName.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / invoiceDate
        Added value: +{
        +  "description": "YYYY-MM-DD, a real date (422 otherwise).",
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +  "type": "string"
        +}
      • addedInput schema / properties / invoiceNumber
        Added value: +{
        +  "description": "Invoice number printed on the document.",
        +  "maxLength": 60,
        +  "type": "string"
        +}
      • addedInput schema / properties / notes
        Added value: +{
        +  "description": "Notes printed at the bottom of the document.",
        +  "maxLength": 2000,
        +  "type": "string"
        +}
      • addedInput schema / properties / terms
        Added value: +{
        +  "description": "Payment terms line, for example 'Net 30. Pay by bank transfer.'",
        +  "maxLength": 1000,
        +  "type": "string"
        +}
    • Changedconverters_self_employment_tax7 fields changed
      • addedInput schema / properties / asOf
        Added value: +{
        +  "description": "YYYY-MM-DD. Payments due on or before this date are treated as past when spreading what is still to pay. Default: all four are still ahead.",
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +  "type": "string"
        +}
      • addedInput schema / properties / cumulativeProfit
        Added value: +{
        +  "description": "With method 'annualized': net profit earned so far through Mar 31, May 31 and Aug 31 (cumulative, rising, not above netProfit). netProfit is the full-year figure.",
        +  "items": {
        +    "minimum": 0,
        +    "type": "number"
        +  },
        +  "maxItems": 3,
        +  "minItems": 3,
        +  "type": "array"
        +}
      • addedInput schema / properties / method
        Added value: +{
        +  "description": "'even' (default): four equal payments. 'annualized': each payment follows the income earned so far (needs cumulativeProfit); good for seasonal income.",
        +  "enum": [
        +    "even",
        +    "annualized"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / paymentsMade
        Added value: +{
        +  "description": "Estimated payments already made this year. Counts against the yearly total in the 'remaining' block and the safe harbour.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / priorYearStateTax
        Added value: +{
        +  "description": "With includeIncomeTax and state: last year's state income tax, for the state's own safe-harbour test. Without it the state test is 90% of this year's state tax. priorYearTax is last year's federal total (self-employment plus income tax) and is tested against the federal figure only.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / priorYearTax / description
        Previous value: -"With includeIncomeTax: last year's total tax, for the IRS safe-harbour alternative (100% of last year's tax, or 110% if priorYearAgi is above the threshold)."New value: +"With includeIncomeTax: last year's federal total tax (self-employment plus income tax), for the IRS safe-harbour test on the federal part (100% of last year's tax, or 110% if priorYearAgi is above the threshold)."
      • addedInput schema / properties / ytdWithholding
        Added value: +{
        +  "description": "With includeIncomeTax: federal income tax already withheld this year (for example from a W-2 job). Counts against the yearly total in the 'remaining' block and the safe harbour.",
        +  "minimum": 0,
        +  "type": "number"
        +}
  3. 2 tool updates
    • Changedbusiness_cover_letter1 field changed
      • changedInput schema / properties / contact / description
        Previous value: -"Contact lines, one per line"New value: +"Contact lines, one per line. At least one line must be an email address, a phone number or a LinkedIn address (422 otherwise); the closing line \"I can be reached at ...\" uses the email and phone, never a city."
    • Addedbusiness_resume_job_match
  4. 1 tool update
    • Changedcalculate_gpa1 field changed
      • removedInput schema / properties / courses / items / properties / credits / exclusiveMinimum
        Removed value: -0
  5. 4 tool updates
    • Changedfind_and_replace1 field changed
      • addedInput schema / properties / find / maxLength
        Added value: +2000
    • Changedkeyword_density1 field changed
      • addedInput schema / properties / keyword / maxLength
        Added value: +500
    • Changedtest_regex1 field changed
      • addedInput schema / properties / pattern / maxLength
        Added value: +2000
    • Changedtext_similarity2 fields changed
      • addedInput schema / properties / a / description
        Added value: +"First text, up to 10,000 characters (longer is a 422)."
      • addedInput schema / properties / b / description
        Added value: +"Second text, up to 10,000 characters (longer is a 422)."
  6. 2 tool updates
    • Changeddiff_text2 fields changed
      • addedInput schema / properties / textA / description
        Added value: +"Original text."
      • addedInput schema / properties / textB / description
        Added value: +"Changed text."
    • Changedtext_ascii_art3 fields changed
      • changedInput schema / properties / font / description
        Previous value: -"banner (default): 5-row block letters. wide: the same letters twice as wide. box: one line of plain text inside a box."New value: +"banner (default): 5-row block letters. wide: the same letters twice as wide. box: your text as typed (any language or emoji, several lines) inside one box."
      • changedInput schema / properties / text / description
        Previous value: -"Text to draw. Plain ASCII only (letters, digits, space and . , ! ? - _ : ; ' \" + = / \\ ( ) @ # & * < >); lowercase is drawn as capitals. Use \\n for several lines (up to 6 lines of 20 characters). Emoji and non-ASCII characters return 400."New value: +"Text to draw. banner and wide: letters A-Z (lowercase is drawn as capitals), digits, space and . , ! ? - _ : ; ' \" + = / \\ ( ) @ # & * < >; accented Latin letters are drawn as the plain letter and listed in 'notes'; emoji and other scripts return 400 (use font box for those). Up to 6 lines of 20 characters, separated by \\n. box: any text, emoji and every language included, up to 6 lines of 60 columns, kept in one box."
      • changedInput schema / properties / text / maxLength
        Previous value: -200New value: +400
  7. 4 tool updates
    • Changedbusiness_marketplace_fee3 fields changed
      • addedInput schema / properties / returnPct / description
        Added value: +"Share of orders returned, in percent. Default 0 (the website form pre-fills 5)."
      • addedInput schema / properties / returnPostage / description
        Added value: +"Postage lost on a return. Default 0 (the website form pre-fills 4.50)."
      • changedInput schema / properties / shippingCost / description
        Previous value: -"What you pay the carrier to send one order."New value: +"What you pay the carrier to send one order. Default 0 (the website form pre-fills 4.50)."
    • Changedbusiness_offer_letter_draft1 field changed
      • changedInput schema / properties / candidate / description
        Previous value: -"The candidate's name."New value: +"Full name of the person receiving the offer."
    • Changedtext_citation31 fields changed
      • addedInput schema / properties / accessDate
        Added value: +{
        +  "description": "YYYY-MM-DD. Websites: MLA prints it when sent (and, with today's date, when the page has no date); Chicago prints it only for undated pages; APA never does.",
        +  "maxLength": 10,
        +  "type": "string"
        +}
      • addedInput schema / properties / authors / description
        Added value: +"People, separated by semicolons, new lines or 'and': 'Smith, Jane; Lee, Kim' or 'Jane Smith and Kim Lee'. 'Last, First' is exact; 'First Last' takes the last word as the surname. Leave out when there is no author (the title leads) and use groupAuthor for an organization."
      • addedInput schema / properties / authors / maxLength
        Added value: +2000
      • removedInput schema / properties / authors / minLength
        Removed value: -1
      • addedInput schema / properties / bookTitle
        Added value: +{
        +  "description": "Chapters: the title of the book that holds the chapter (required for book-chapter).",
        +  "maxLength": 500,
        +  "type": "string"
        +}
      • addedInput schema / properties / chicagoEdition
        Added value: +{
        +  "description": "Chicago only. 17 (default): the edition the site's Citation Generator uses, publisher city included. 18: the newest edition (2024), no publisher city, up to 6 authors in a bibliography.",
        +  "enum": [
        +    "17",
        +    "18"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / city
        Added value: +{
        +  "description": "Chicago 17th: publisher city for books and chapters. Ignored by APA and MLA, and by Chicago 18th.",
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / doi
        Added value: +{
        +  "description": "A DOI (10.1037/ppm0000185) or its link. Written as an https://doi.org/ link, and used instead of a URL.",
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / edition
        Added value: +{
        +  "description": "Books: 2, 2nd or 2nd ed. All become 2nd ed.",
        +  "maxLength": 40,
        +  "type": "string"
        +}
      • addedInput schema / properties / editors
        Added value: +{
        +  "description": "Chapters: the book's editors, written like authors.",
        +  "maxLength": 1000,
        +  "type": "string"
        +}
      • addedInput schema / properties / groupAuthor
        Added value: +{
        +  "description": "An organization as the author, for example World Health Organization.",
        +  "maxLength": 300,
        +  "type": "string"
        +}
      • addedInput schema / properties / issue
        Added value: +{
        +  "maxLength": 20,
        +  "type": "string"
        +}
      • addedInput schema / properties / journalName
        Added value: +{
        +  "description": "Journal articles: the journal's title (required for journal-article).",
        +  "maxLength": 300,
        +  "type": "string"
        +}
      • addedInput schema / properties / page
        Added value: +{
        +  "description": "The page or page range you are quoting, for the in-text citation or Chicago note.",
        +  "maxLength": 30,
        +  "type": "string"
        +}
      • addedInput schema / properties / pages
        Added value: +{
        +  "description": "A page range such as 45-60 (en dash, hyphen or em dash), or a single page, or an article number such as e0193972.",
        +  "maxLength": 30,
        +  "type": "string"
        +}
      • addedInput schema / properties / publicationDate
        Added value: +{
        +  "description": "Full date YYYY-MM-DD (websites): written as April 24, 2025 in APA, 24 Apr. 2025 in MLA, April 24, 2025 in Chicago. Replaces year.",
        +  "maxLength": 10,
        +  "type": "string"
        +}
      • addedInput schema / properties / publisher
        Added value: +{
        +  "description": "Books and chapters: the publisher's name only.",
        +  "maxLength": 300,
        +  "type": "string"
        +}
      • addedInput schema / properties / siteName
        Added value: +{
        +  "description": "Websites: the name of the site (left out in APA when it is the same as the author).",
        +  "maxLength": 300,
        +  "type": "string"
        +}
      • addedInput schema / properties / siteOrPublisher / description
        Added value: +"Older field: becomes siteName for a website, the journal name for a journal article, and the publisher otherwise."
      • addedInput schema / properties / siteOrPublisher / maxLength
        Added value: +300
      • addedInput schema / properties / sourceType
        Added value: +{
        +  "description": "What is being cited. Default: journal-article when journalName is sent, book-chapter when bookTitle is sent, website when a url is sent without a publisher, otherwise book.",
        +  "enum": [
        +    "website",
        +    "book",
        +    "journal-article",
        +    "book-chapter"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / style / description
        Added value: +"apa: APA 7th edition. mla: MLA 9th edition. chicago: Chicago notes-bibliography (see chicagoEdition)."
      • addedInput schema / properties / title / description
        Added value: +"The title of the page, book, article or chapter, in the capitalization it should have. APA wants sentence case; MLA and Chicago want headline case. It is used as typed and advice is returned in notes."
      • addedInput schema / properties / title / maxLength
        Added value: +500
      • addedInput schema / properties / url / description
        Added value: +"The web address. For a website it is the page; for a book, article or chapter it is used only when there is no DOI. https:// is added to a bare domain."
      • addedInput schema / properties / url / maxLength
        Added value: +2000
      • addedInput schema / properties / volume
        Added value: +{
        +  "maxLength": 20,
        +  "type": "string"
        +}
      • addedInput schema / properties / year / anyOf
        Added value: +[
        +  {
        +    "maxLength": 10,
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • addedInput schema / properties / year / description
        Added value: +"Year as 2025 or a string such as 2025 or n.d. A negative or non-year number is a 422. Left out: n.d."
      • removedInput schema / properties / year / type
        Removed value: -[
        -  "string",
        -  "number"
        -]
      • changedInput schema / required
        Previous value: -[
        -  "style",
        -  "authors",
        -  "title"
        -]New value: +[
        +  "style",
        +  "title"
        +]
    • Changedtext_paper_format4 fields changed
      • addedInput schema / properties / style
        Added value: +{
        +  "description": "The style to return formatting rules for: apa (7th edition), mla (9th) or chicago (Turabian/Chicago student-paper defaults). Leave out to get all three in `guides`.",
        +  "enum": [
        +    "apa",
        +    "mla",
        +    "chicago"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / text / description
        Added value: +"Optional paper text. When sent, the response also counts words and paragraphs and looks for the reference-list heading the style expects. The text carries no fonts or margins, so layout cannot be checked from it: use the site's Paper Format Checker on a .docx for that."
      • addedInput schema / properties / text / maxLength
        Added value: +2000000
      • removedInput schema / required
        Removed value: -[
        -  "text"
        -]
  8. 4 tool updates
    • Changedbusiness_cover_letter6 fields changed
      • addedInput schema / properties / date / description
        Added value: +"The letter date. A YYYY-MM-DD date is written out in full (November 5, 2026); other text is used as typed."
      • addedInput schema / properties / found / description
        Added value: +"Where you found the job, in a word or phrase: LinkedIn, on Indeed, a friend, your careers page. A preposition is added when it is missing."
      • addedInput schema / properties / includeDocx
        Added value: +{
        +  "description": "true also returns the letter as a Word file in result.docx (filename, contentType, base64). Default false: the result holds the text and sections only.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / manager / description
        Added value: +"Hiring manager's name. Default: Hiring Manager."
      • addedInput schema / properties / why / description
        Added value: +"Why this company, as a clause that follows 'because': 'your mission to cut waste'. A leading 'because' and capital letter are fixed for you."
      • addedInput schema / properties / years / description
        Added value: +"Years of experience: 8, 8 years or 8+ years all become '8 years of experience'."
    • Changedbusiness_offer_letter_draft34 fields changed
      • addedInput schema / properties / benefits
        Added value: +{
        +  "description": "Permanent roles: the benefits paragraph. A standard sentence is used when left out.",
        +  "maxLength": 2000,
        +  "type": "string"
        +}
      • addedInput schema / properties / candidate / description
        Added value: +"The candidate's name."
      • addedInput schema / properties / candidate / maxLength
        Added value: +200
      • addedInput schema / properties / company / description
        Added value: +"The employer's name."
      • addedInput schema / properties / company / maxLength
        Added value: +200
      • addedInput schema / properties / companyTagline
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / contingencies
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Which conditions the offer depends on. Defaults: criminalCheck and workEligibility true, the others false.",
        +  "properties": {
        +    "backgroundCheck": {
        +      "type": "boolean"
        +    },
        +    "criminalCheck": {
        +      "type": "boolean"
        +    },
        +    "referenceCheck": {
        +      "type": "boolean"
        +    },
        +    "workEligibility": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / durationNumber
        Added value: +{
        +  "description": "Internships: how long it lasts, in durationUnit. Default 3.",
        +  "maximum": 260,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / durationUnit
        Added value: +{
        +  "description": "Default months.",
        +  "enum": [
        +    "weeks",
        +    "months"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / employmentType
        Added value: +{
        +  "description": "Full-time (default), Part-time, Contract.",
        +  "maxLength": 40,
        +  "type": "string"
        +}
      • addedInput schema / properties / equipment
        Added value: +{
        +  "description": "Whose equipment is used. Default company.",
        +  "enum": [
        +    "company",
        +    "own"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeDocx
        Added value: +{
        +  "description": "true also returns the letter as a Word file in result.docx (filename, contentType, base64).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / learningPoints
        Added value: +{
        +  "description": "Internships: what the intern will gain, one item each. A standard list is used when left out.",
        +  "items": {
        +    "maxLength": 300,
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • addedInput schema / properties / managerName
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / managerTitle
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / mentorName
        Added value: +{
        +  "description": "Internships: the mentor named in the reporting section.",
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / noticeDays
        Added value: +{
        +  "description": "With termination notice: days of written notice. Default 30.",
        +  "maximum": 365,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / paidInternship
        Added value: +{
        +  "description": "Internships: true when a stipend is paid (then salary is the stipend). Default false: an unpaid-internship clause is written.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / positionType
        Added value: +{
        +  "description": "Default permanent.",
        +  "enum": [
        +    "permanent",
        +    "internship"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / responseDeadline
        Added value: +{
        +  "description": "Last day to accept, YYYY-MM-DD, on or before startDate (422 otherwise).",
        +  "maxLength": 20,
        +  "type": "string"
        +}
      • addedInput schema / properties / salary / anyOf
        Added value: +[
        +  {
        +    "maxLength": 60,
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • addedInput schema / properties / salary / description
        Added value: +"Pay as a number or text: 92000, \"$92,000\", \"92,000 per year\", \"6,000/month\", \"45 per hour\". Must be above 0 (422 otherwise). Required, except for an unpaid internship. Words after the number set the period unless salaryPeriod is sent."
      • removedInput schema / properties / salary / minLength
        Removed value: -1
      • removedInput schema / properties / salary / type
        Removed value: -"string"
      • addedInput schema / properties / salaryPeriod
        Added value: +{
        +  "description": "What the pay is per. Default year, or the period named in the salary text.",
        +  "enum": [
        +    "year",
        +    "month",
        +    "hour"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / signerName
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / signerTitle
        Added value: +{
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / startDate / description
        Added value: +"First day of work as a real calendar date, YYYY-MM-DD (422 otherwise). A date in the past is allowed and returned as a warning."
      • addedInput schema / properties / startDate / maxLength
        Added value: +20
      • addedInput schema / properties / state
        Added value: +{
        +  "description": "Governing-law state or country. The governing-law section is left out when this is not sent.",
        +  "maxLength": 100,
        +  "type": "string"
        +}
      • addedInput schema / properties / termination
        Added value: +{
        +  "description": "Default at-will.",
        +  "enum": [
        +    "at-will",
        +    "notice"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / title / description
        Added value: +"The job title."
      • addedInput schema / properties / title / maxLength
        Added value: +200
      • changedInput schema / required
        Previous value: -[
        -  "candidate",
        -  "company",
        -  "title",
        -  "salary",
        -  "startDate"
        -]New value: +[
        +  "candidate",
        +  "company",
        +  "title",
        +  "startDate"
        +]
    • Changedbusiness_resume_outline21 fields changed
      • addedInput schema / properties / contact
        Added value: +{
        +  "description": "Contact lines, one per line, shown under your name.",
        +  "maxLength": 500,
        +  "type": "string"
        +}
      • addedInput schema / properties / education
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "degree": {
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "school": {
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "years": {
        +        "maxLength": 60,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "school",
        +      "degree"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 10,
        +  "type": "array"
        +}
      • addedInput schema / properties / experience / description
        Added value: +"Jobs, newest first."
      • addedInput schema / properties / experience / items / properties / achievements
        Added value: +{
        +  "description": "Result lines for this job. Prompts are written in their place when left out.",
        +  "items": {
        +    "maxLength": 400,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 12,
        +  "type": "array"
        +}
      • addedInput schema / properties / experience / items / properties / company / maxLength
        Added value: +200
      • addedInput schema / properties / experience / items / properties / company / minLength
        Added value: +1
      • addedInput schema / properties / experience / items / properties / role / maxLength
        Added value: +200
      • addedInput schema / properties / experience / items / properties / role / minLength
        Added value: +1
      • addedInput schema / properties / experience / items / properties / years / description
        Added value: +"The period, such as 2022-2026 or 2021-Present. Must contain a real year and not end before it starts (422 otherwise)."
      • addedInput schema / properties / experience / items / properties / years / maxLength
        Added value: +60
      • addedInput schema / properties / experience / maxItems
        Added value: +30
      • addedInput schema / properties / includeDocx
        Added value: +{
        +  "description": "true also returns the outline as a Word file in result.docx (filename, contentType, base64).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / name / description
        Added value: +"Your name."
      • addedInput schema / properties / name / maxLength
        Added value: +200
      • addedInput schema / properties / skills / items / maxLength
        Added value: +100
      • addedInput schema / properties / skills / items / minLength
        Added value: +1
      • addedInput schema / properties / skills / maxItems
        Added value: +60
      • addedInput schema / properties / summary / description
        Added value: +"Your own summary. When left out a one-line draft is written and flagged (summaryIsDraft)."
      • addedInput schema / properties / summary / maxLength
        Added value: +2000
      • addedInput schema / properties / title / description
        Added value: +"The job title you are applying for or hold."
      • addedInput schema / properties / title / maxLength
        Added value: +200
    • Changedconverters_job_experience1 field changed
      • changedInput schema / properties / otherJobs / description
        Previous value: -"More jobs. When given, the response also has a `history` object: each job's length, the total with overlapping periods counted once, and the gaps between jobs."New value: +"More jobs. When given, the top-level years, months and label are the TOTAL across all jobs (overlapping periods counted once; the first job alone is in `firstJob`), and the response also has a `history` object: each job's length, the total, and the gaps between jobs."
  9. 3 tool updates
    • Changedbusiness_marketplace_fee16 fields changed
      • addedInput schema / properties / adCost
        Added value: +{
        +  "description": "Ad or acquisition cost per order.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / compare
        Added value: +{
        +  "description": "2 to 4 of Amazon, Etsy, eBay, Walmart, Mercari, TikTok Shop, Shopify. Needs cost. Returns 'comparison': every fee line, payout, profit, margin, ROI and break-even price per marketplace, with the date each preset's rates were verified.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 4,
        +  "minItems": 2,
        +  "type": "array"
        +}
      • addedInput schema / properties / cost
        Added value: +{
        +  "description": "What the item costs you. With it the response adds a 'profit' object (profit if kept, returns, margin, ROI, break-even price).",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / feeOnShipping
        Added value: +{
        +  "description": "Whether the percentage fee also applies to shipping charged. Default true.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / feePct / description
        Added value: +"Marketplace fee in percent. Required unless compare is sent."
      • addedInput schema / properties / fulfilment
        Added value: +{
        +  "description": "Fulfilment fee per unit, e.g. Amazon FBA (in compare it is charged to Amazon only).",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / offsiteAdsPct
        Added value: +{
        +  "description": "Compare only: Etsy Offsite Ads fee on the Etsy column, 15% or 12% (capped at $100 per order). Default 0.",
        +  "enum": [
        +    0,
        +    12,
        +    15
        +  ],
        +  "type": "number"
        +}
      • addedInput schema / properties / ordersPerMonth
        Added value: +{
        +  "description": "Adds the expected profit for a month of that many orders.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / paymentFixed
        Added value: +{
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / paymentPct
        Added value: +{
        +  "description": "Separate payment-processing fee in percent (0 where the marketplace fee includes it).",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / returnPct
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / returnPostage
        Added value: +{
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / shippingCharged
        Added value: +{
        +  "description": "Shipping the buyer pays on top of price.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / shippingCost
        Added value: +{
        +  "description": "What you pay the carrier to send one order.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / unsellablePct
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "price",
        -  "feePct"
        -]New value: +[
        +  "price"
        +]
    • Changedcalculate_sales_tax8 fields changed
      • addedInput schema / properties / amount / description
        Added value: +"Amount to tax (or the tax-inclusive amount in extract mode). Required unless items is sent."
      • addedInput schema / properties / discountPct
        Added value: +{
        +  "description": "With items: percentage discount on every line.",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / items
        Added value: +{
        +  "description": "Several items (mode add only). Response adds 'cart' with taxable and exempt subtotals, tax, total, steps and lines.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "name": {
        +        "type": "string"
        +      },
        +      "price": {
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "qty": {
        +        "minimum": 1,
        +        "type": "integer"
        +      },
        +      "taxable": {
        +        "description": "Default true. false marks the item exempt.",
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "price"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 100,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedInput schema / properties / shipping
        Added value: +{
        +  "description": "With items: shipping charged.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / shippingTaxable
        Added value: +{
        +  "description": "With items: true adds shipping to the taxable amount. Default false (rules differ by state, so you choose).",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / taxPercent / description
        Previous value: -"Tax rate in percent. Required unless state is sent. Takes priority over state."New value: +"Tax rate in percent. Required unless state or an exact zip is sent. Takes priority over state."
      • addedInput schema / properties / zip
        Added value: +{
        +  "description": "US ZIP code (5 digits or ZIP+4). Used to find the STATE. The rate is filled in only where it is exact: 0% for DE, NH and OR, or the state rate for states with no local add-on in the Tax Foundation midyear 2026 table. For any other state no rate is guessed (a ZIP can cross city, county and district lines): the response's zip.message says so, and you send taxPercent or state. Response adds 'zip' with the state, status, message, source and the state's official lookup page where one was verified.",
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "amount"
        -]
    • Changedconverters_state_tax2 fields changed
      • addedInput schema / properties / locality
        Added value: +{
        +  "description": "A named city or county for the chosen state (id from the response's availableLocalities, e.g. ny-nyc, ny-yonkers, md-montgomery, pa-philadelphia, mi-detroit, mo-kansas-city, mo-st-louis, oh-columbus). Adds its local income tax as its own 'locality' object and replaces the typical average (includeLocal is then ignored). 'tax' is unchanged; see totalWithLocalAndPayroll.",
        +  "type": "string"
        +}
      • addedInput schema / properties / localityRole
        Added value: +{
        +  "description": "With locality: resident (default) or worker (live elsewhere, work there) where a non-resident rate was confirmed (Philadelphia, Detroit, Kansas City, St. Louis).",
        +  "enum": [
        +    "resident",
        +    "worker"
        +  ],
        +  "type": "string"
        +}
  10. 4 tool updates
    • Changedconverters_exchange_rates4 fields changed
      • changedInput schema / properties / date / description
        Previous value: -"A past date, YYYY-MM-DD: the ECB rate for that day (the latest earlier working day if none was published)."New value: +"A past date, YYYY-MM-DD: the daily rate for that day (ECB set: the latest earlier working day if none was published)."
      • changedInput schema / properties / from / description
        Previous value: -"Three-letter currency code to convert from (default USD)."New value: +"Currency code to convert from (default USD): ISO codes such as USD, plus crypto and metal codes in the broad set."
      • changedInput schema / properties / listCurrencies / description
        Previous value: -"true returns the supported currency codes and the date of the latest rates."New value: +"true returns the supported currency codes (with type and name) and the date of the latest rates."
      • addedInput schema / properties / source
        Added value: +{
        +  "description": "auto (default): the broad daily set of about 200 currencies, crypto and metals, falling back to the ECB set; broad: only the broad set; ecb: only the ECB set (about 30 currencies, and the only one with history ranges).",
        +  "enum": [
        +    "auto",
        +    "broad",
        +    "ecb"
        +  ],
        +  "type": "string"
        +}
    • Addedconverters_units
    • Addedconverters_units_list
    • Addedconverters_vat_validate
  11. 50 tool updates
    • Changedbusiness_bank_statement_to_csv6 fields changed
      • addedInput schema / properties / categorize
        Added value: +{
        +  "description": "true adds a category to every row from a short list of generic keywords (not a merchant database). Default false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / categoryRules
        Added value: +{
        +  "description": "Your own rules: a row whose description contains match (any case) gets that category; the first matching rule wins, before the built-in keywords.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "category": {
        +        "maxLength": 60,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "match": {
        +        "maxLength": 100,
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "match",
        +      "category"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 200,
        +  "type": "array"
        +}
      • addedInput schema / properties / fileBase64
        Added value: +{
        +  "description": "A text-based PDF statement, base64 encoded, up to 20 MB and 100 pages. Scanned or photographed PDFs are refused with a 422: there is no OCR.",
        +  "maxLength": 28000000,
        +  "minLength": 8,
        +  "type": "string"
        +}
      • addedInput schema / properties / includeText
        Added value: +{
        +  "description": "true adds the lines read from the PDF to the response as extractedText, to see what the parser saw.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / text / description
        Added value: +"The statement as pasted text. Send this, or a PDF in fileBase64 (or as the multipart field file)."
      • removedInput schema / required
        Removed value: -[
        -  "text"
        -]
    • Changedbusiness_bill_of_sale_draft5 fields changed
      • addedInput schema / properties / buyer / minLength
        Added value: +1
      • addedInput schema / properties / date / minLength
        Added value: +1
      • addedInput schema / properties / item / minLength
        Added value: +1
      • addedInput schema / properties / price / minLength
        Added value: +1
      • addedInput schema / properties / seller / minLength
        Added value: +1
    • Changedbusiness_eviction_notice_draft5 fields changed
      • addedInput schema / properties / address / minLength
        Added value: +1
      • addedInput schema / properties / date / minLength
        Added value: +1
      • addedInput schema / properties / days / minimum
        Added value: +0
      • addedInput schema / properties / landlord / minLength
        Added value: +1
      • addedInput schema / properties / tenant / minLength
        Added value: +1
    • Changedbusiness_expenses4 fields changed
      • addedInput schema / properties / items / description
        Added value: +"The expenses to total. A refund is a negative amount."
      • addedInput schema / properties / items / items / properties / date
        Added value: +{
        +  "description": "Optional date, YYYY-MM-DD. When any item has one, the response adds byMonth totals.",
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}",
        +  "type": "string"
        +}
      • addedInput schema / properties / items / items / properties / description
        Added value: +{
        +  "description": "Optional note; not used in the totals.",
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • addedInput schema / properties / mergeCategories
        Added value: +{
        +  "description": "true treats categories that differ only in case or surrounding spaces as one. Default false (exactly as sent).",
        +  "type": "boolean"
        +}
    • Changedbusiness_invention_disclosure4 fields changed
      • addedInput schema / properties / inventor / minLength
        Added value: +1
      • addedInput schema / properties / problem / minLength
        Added value: +1
      • addedInput schema / properties / solution / minLength
        Added value: +1
      • addedInput schema / properties / title / minLength
        Added value: +1
    • Changedbusiness_invoice_totals3 fields changed
      • addedInput schema / properties / discountPct / minimum
        Added value: +0
      • addedInput schema / properties / lines / minItems
        Added value: +1
      • addedInput schema / properties / taxPct / minimum
        Added value: +0
    • Changedbusiness_lease_draft6 fields changed
      • addedInput schema / properties / address / minLength
        Added value: +1
      • addedInput schema / properties / end / minLength
        Added value: +1
      • addedInput schema / properties / landlord / minLength
        Added value: +1
      • addedInput schema / properties / rent / minLength
        Added value: +1
      • addedInput schema / properties / start / minLength
        Added value: +1
      • addedInput schema / properties / tenant / minLength
        Added value: +1
    • Changedbusiness_marketplace_fee3 fields changed
      • addedInput schema / properties / feePct / minimum
        Added value: +0
      • addedInput schema / properties / fixedFee / minimum
        Added value: +0
      • addedInput schema / properties / price / minimum
        Added value: +0
    • Changedbusiness_nda_draft4 fields changed
      • addedInput schema / properties / disclosingParty / minLength
        Added value: +1
      • addedInput schema / properties / purpose / minLength
        Added value: +1
      • addedInput schema / properties / receivingParty / minLength
        Added value: +1
      • addedInput schema / properties / termYears / minimum
        Added value: +0
    • Changedbusiness_offer_letter_draft5 fields changed
      • addedInput schema / properties / candidate / minLength
        Added value: +1
      • addedInput schema / properties / company / minLength
        Added value: +1
      • addedInput schema / properties / salary / minLength
        Added value: +1
      • addedInput schema / properties / startDate / minLength
        Added value: +1
      • addedInput schema / properties / title / minLength
        Added value: +1
    • Changedbusiness_poa_draft3 fields changed
      • addedInput schema / properties / agent / minLength
        Added value: +1
      • addedInput schema / properties / powers / minLength
        Added value: +1
      • addedInput schema / properties / principal / minLength
        Added value: +1
    • Changedbusiness_product_margin2 fields changed
      • addedInput schema / properties / cost / minimum
        Added value: +0
      • addedInput schema / properties / price / minimum
        Added value: +0
    • Changedbusiness_profit_margin2 fields changed
      • addedInput schema / properties / cost / minimum
        Added value: +0
      • addedInput schema / properties / price / minimum
        Added value: +0
    • Changedbusiness_promissory_note_draft4 fields changed
      • addedInput schema / properties / amount / minLength
        Added value: +1
      • addedInput schema / properties / borrower / minLength
        Added value: +1
      • addedInput schema / properties / due / minLength
        Added value: +1
      • addedInput schema / properties / lender / minLength
        Added value: +1
    • Changedbusiness_receipt3 fields changed
      • addedInput schema / properties / lines / minItems
        Added value: +1
      • addedInput schema / properties / merchant / minLength
        Added value: +1
      • addedInput schema / properties / taxPct / minimum
        Added value: +0
    • Changedbusiness_resume_outline2 fields changed
      • addedInput schema / properties / name / minLength
        Added value: +1
      • addedInput schema / properties / title / minLength
        Added value: +1
    • Changedbusiness_shipping_estimate1 field changed
      • addedInput schema / properties / base / minimum
        Added value: +0
    • Changedbusiness_startup_names1 field changed
      • addedInput schema / properties / limit / minimum
        Added value: +0
    • Changedconvert_currency1 field changed
      • addedInput schema / properties / amount / minimum
        Added value: +0
    • Changedconverters_401k3 fields changed
      • addedInput schema / properties / annualContribution / minimum
        Added value: +0
      • addedInput schema / properties / currentBalance / minimum
        Added value: +0
      • addedInput schema / properties / employerMatchPct / minimum
        Added value: +0
    • Changedconverters_5292 fields changed
      • addedInput schema / properties / currentBalance / minimum
        Added value: +0
      • addedInput schema / properties / monthlyContribution / minimum
        Added value: +0
    • Changedconverters_amortization1 field changed
      • addedInput schema / properties / annualRatePct / minimum
        Added value: +0
    • Changedconverters_college_cost2 fields changed
      • addedInput schema / properties / annualCost / minimum
        Added value: +0
      • addedInput schema / properties / years / minimum
        Added value: +0
    • Changedconverters_fire3 fields changed
      • addedInput schema / properties / annualContribution / minimum
        Added value: +0
      • addedInput schema / properties / currentSavings / minimum
        Added value: +0
      • addedInput schema / properties / withdrawalRatePct / minimum
        Added value: +0
    • Changedconverters_paycheck3 fields changed
      • addedInput schema / properties / federalRatePct / minimum
        Added value: +0
      • addedInput schema / properties / otherDeductionPerCheck / minimum
        Added value: +0
      • addedInput schema / properties / stateRatePct / minimum
        Added value: +0
    • Changedconverters_social_security2 fields changed
      • addedInput schema / properties / annualEarnings / minimum
        Added value: +0
      • addedInput schema / properties / yearsWorked / minimum
        Added value: +0
    • Changeddecode_jwt1 field changed
      • addedInput schema / properties / token / minLength
        Added value: +1
    • Changedecommerce_etsy_listing_check1 field changed
      • addedInput schema / properties / title / minLength
        Added value: +1
    • Changedfind_and_replace1 field changed
      • addedInput schema / properties / find / minLength
        Added value: +1
    • Changedgenerate_meta_tags2 fields changed
      • addedInput schema / properties / description / minLength
        Added value: +1
      • addedInput schema / properties / title / minLength
        Added value: +1
    • Addedimage_compress
    • Changedimage_crop15 fields changed
      • addedInput schema / properties / backgroundColor
        Added value: +{
        +  "description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'",
        +  "type": "string"
        +}
      • addedInput schema / properties / format / description
        Added value: +"png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
      • removedInput schema / properties / format / enum
        Removed value: -[
        -  "image/png",
        -  "image/jpeg"
        -]
      • addedInput schema / properties / h / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / h / maximum
        Removed value: -1
      • removedInput schema / properties / h / minimum
        Removed value: -0
      • addedInput schema / properties / quality
        Added value: +{
        +  "description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / stripMetadata
        Added value: +{
        +  "description": "Remove EXIF/GPS/colour-profile data. Default true",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / unit
        Added value: +{
        +  "enum": [
        +    "fraction",
        +    "px"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / w / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / w / maximum
        Removed value: -1
      • removedInput schema / properties / w / minimum
        Removed value: -0
      • removedInput schema / properties / x / maximum
        Removed value: -1
      • removedInput schema / properties / y / maximum
        Removed value: -1
      • changedInput schema / required
        Previous value: -[
        -  "fileBase64",
        -  "x",
        -  "y",
        -  "w",
        -  "h"
        -]New value: +[
        +  "fileBase64",
        +  "w",
        +  "h"
        +]
    • Changedimage_flip5 fields changed
      • addedInput schema / properties / backgroundColor
        Added value: +{
        +  "description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'",
        +  "type": "string"
        +}
      • addedInput schema / properties / format / description
        Added value: +"png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
      • removedInput schema / properties / format / enum
        Removed value: -[
        -  "image/png",
        -  "image/jpeg"
        -]
      • addedInput schema / properties / quality
        Added value: +{
        +  "description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / stripMetadata
        Added value: +{
        +  "description": "Remove EXIF/GPS/colour-profile data. Default true",
        +  "type": "boolean"
        +}
    • Changedimage_resize11 fields changed
      • addedInput schema / properties / animated
        Added value: +{
        +  "description": "Keep every frame of an animated GIF/WebP. Default true",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / backgroundColor
        Added value: +{
        +  "description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'",
        +  "type": "string"
        +}
      • addedInput schema / properties / fit
        Added value: +{
        +  "description": "Default fill (exact width x height)",
        +  "enum": [
        +    "fill",
        +    "contain",
        +    "cover",
        +    "inside",
        +    "outside"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / format / description
        Added value: +"png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
      • removedInput schema / properties / format / enum
        Removed value: -[
        -  "image/png",
        -  "image/jpeg"
        -]
      • addedInput schema / properties / height / maximum
        Added value: +16384
      • addedInput schema / properties / quality
        Added value: +{
        +  "description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / stripMetadata
        Added value: +{
        +  "description": "Remove EXIF/GPS/colour-profile data. Default true",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / width / maximum
        Added value: +16384
      • addedInput schema / properties / withoutEnlargement
        Added value: +{
        +  "type": "boolean"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "fileBase64",
        -  "width",
        -  "height"
        -]New value: +[
        +  "fileBase64"
        +]
    • Changedimage_rotate5 fields changed
      • addedInput schema / properties / backgroundColor
        Added value: +{
        +  "description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'",
        +  "type": "string"
        +}
      • addedInput schema / properties / format / description
        Added value: +"png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
      • removedInput schema / properties / format / enum
        Removed value: -[
        -  "image/png",
        -  "image/jpeg"
        -]
      • addedInput schema / properties / quality
        Added value: +{
        +  "description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / stripMetadata
        Added value: +{
        +  "description": "Remove EXIF/GPS/colour-profile data. Default true",
        +  "type": "boolean"
        +}
    • Addedimage_watermark
    • Changedkeyword_density1 field changed
      • addedInput schema / properties / keyword / minLength
        Added value: +1
    • Changedparse_user_agent1 field changed
      • addedInput schema / properties / ua / minLength
        Added value: +1
    • Changedpdf_fill_form4 fields changed
      • changedInput schema / properties / checked / description
        Previous value: -"Field name -> checked state, for checkbox fields"New value: +"Field name -> checked state, for checkbox fields (only the named checkboxes change)"
      • addedInput schema / properties / values / additionalProperties / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / values / additionalProperties / type
        Removed value: -"string"
      • changedInput schema / properties / values / description
        Previous value: -"Field name -> text value, for text/dropdown/radio fields"New value: +"Field name -> value. Text/dropdown/radio: a string; option list: a string or an array of strings; checkbox: true/false. null or an empty string clears the field. Fields not named here are left untouched"
    • Changedplanning_cost_of_living2 fields changed
      • addedInput schema / properties / fromIndex / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / toIndex / exclusiveMinimum
        Added value: +0
    • Changedplanning_event_budget5 fields changed
      • addedInput schema / properties / catering / minimum
        Added value: +0
      • addedInput schema / properties / costPerGuest / minimum
        Added value: +0
      • addedInput schema / properties / extras / minimum
        Added value: +0
      • addedInput schema / properties / guests / minimum
        Added value: +0
      • addedInput schema / properties / venue / minimum
        Added value: +0
    • Changedplanning_event_schedule1 field changed
      • addedInput schema / properties / items / minItems
        Added value: +1
    • Changedplanning_itinerary1 field changed
      • addedInput schema / properties / days / minimum
        Added value: +0
    • Changedplanning_packing_list1 field changed
      • addedInput schema / properties / nights / minimum
        Added value: +0
    • Changedplanning_split_bill1 field changed
      • addedInput schema / properties / tipPct / minimum
        Added value: +0
    • Changedplanning_travel_countdown1 field changed
      • addedInput schema / properties / nights / minimum
        Added value: +0
    • Changedtest_regex1 field changed
      • addedInput schema / properties / pattern / minLength
        Added value: +1
    • Changedtext_citation2 fields changed
      • addedInput schema / properties / authors / minLength
        Added value: +1
      • addedInput schema / properties / title / minLength
        Added value: +1
    • Changedtext_invitation_copy4 fields changed
      • addedInput schema / properties / event / minLength
        Added value: +1
      • addedInput schema / properties / host / minLength
        Added value: +1
      • addedInput schema / properties / when / minLength
        Added value: +1
      • addedInput schema / properties / where / minLength
        Added value: +1
    • Changedtext_user_manual2 fields changed
      • addedInput schema / properties / product / minLength
        Added value: +1
      • addedInput schema / properties / tasks / minItems
        Added value: +1
  12. 2 tool updates
    • Changedconverters_tdee1 field changed
      • addedInput schema / properties / macroGoal
        Added value: +{
        +  "description": "Adds a macros block: grams of protein, carbohydrate and fat for the matching calorie target (lose = cut, maintain = TDEE, gain = bulk), the percentage split, and whether each share sits inside the Institute of Medicine AMDR ranges.",
        +  "enum": [
        +    "lose",
        +    "maintain",
        +    "gain"
        +  ],
        +  "type": "string"
        +}
    • Changedplanning_cost_of_living6 fields changed
      • addedInput schema / properties / from
        Added value: +{
        +  "description": "Current place as a U.S. city ('Austin' or 'Austin, TX') or 5-digit ZIP; looked up in the built-in table of 127 U.S. metros (BEA Regional Price Parities, 2023).",
        +  "type": "string"
        +}
      • addedInput schema / properties / fromIndex / description
        Added value: +"Cost-of-living index of the current place (100 = average). Leave out when you send 'from'."
      • addedInput schema / properties / salary / description
        Added value: +"Current salary."
      • addedInput schema / properties / to
        Added value: +{
        +  "description": "New place, same format as 'from'.",
        +  "type": "string"
        +}
      • addedInput schema / properties / toIndex / description
        Added value: +"Cost-of-living index of the new place. Leave out when you send 'to'."
      • changedInput schema / required
        Previous value: -[
        -  "fromIndex",
        -  "toIndex",
        -  "salary"
        -]New value: +[
        +  "salary"
        +]
  13. 25 tool updates
    • Changedbusiness_break_even3 fields changed
      • addedInput schema / properties / expectedUnits
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / startupCost
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / targetProfit
        Added value: +{
        +  "type": "number"
        +}
    • Changedbusiness_profit_margin6 fields changed
      • addedInput schema / properties / acquisition
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / marginPct
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / markupPct
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / profit
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / shipping
        Added value: +{
        +  "type": "number"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "cost",
        -  "price"
        -]
    • Changedcolor_convert10 fields changed
      • addedInput schema / properties / b / description
        Added value: +"Blue, 0-255"
      • removedInput schema / properties / b / maximum
        Removed value: -255
      • removedInput schema / properties / b / minimum
        Removed value: -0
      • addedInput schema / properties / clamp
        Added value: +{
        +  "description": "Clamp r, g, b to 0-255 and report each change in 'clamped', instead of an error",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / g / description
        Added value: +"Green, 0-255"
      • removedInput schema / properties / g / maximum
        Removed value: -255
      • removedInput schema / properties / g / minimum
        Removed value: -0
      • addedInput schema / properties / r / description
        Added value: +"Red, 0-255 (with clamp true, values outside are clamped)"
      • removedInput schema / properties / r / maximum
        Removed value: -255
      • removedInput schema / properties / r / minimum
        Removed value: -0
    • Addedconverters_affordability
    • Addedconverters_contribution_limits
    • Addedconverters_debt_payoff
    • Addedconverters_exchange_rates
    • Changedconverters_india_income_tax1 field changed
      • addedInput schema / properties / itemised
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Old-regime deductions itemised, with the caps applied and returned in deductionBreakdown. Use instead of deductions.",
        +  "properties": {
        +    "health80D": {
        +      "additionalProperties": false,
        +      "description": "80D premiums for self and family and for parents; each capped at 25,000, or 50,000 for a senior citizen.",
        +      "properties": {
        +        "parents": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "parentsSenior": {
        +          "type": "boolean"
        +        },
        +        "self": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "selfSenior": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "homeLoanInterest": {
        +      "description": "Interest on a self-occupied home loan; capped at 2,00,000.",
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "hra": {
        +      "additionalProperties": false,
        +      "description": "HRA exemption inputs (per year). metro true uses 50% of basic + DA, false 40%.",
        +      "properties": {
        +        "basicPlusDa": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "hraReceived": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "metro": {
        +          "type": "boolean"
        +        },
        +        "rentPaid": {
        +          "minimum": 0,
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "basicPlusDa",
        +        "hraReceived",
        +        "rentPaid",
        +        "metro"
        +      ],
        +      "type": "object"
        +    },
        +    "nps80CCD1B": {
        +      "description": "Own NPS contribution, 80CCD(1B); capped at 50,000.",
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "other": {
        +      "description": "Other deductions, added as entered (not capped here).",
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "section80C": {
        +      "description": "80C investments and payments; capped at 1,50,000.",
        +      "minimum": 0,
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedconverters_job_experience2 fields changed
      • addedInput schema / properties / countEndDate
        Added value: +{
        +  "description": "Only used with otherJobs. true (default) counts the end date as a full day, so 1 Jan to 31 Dec is one year.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / otherJobs
        Added value: +{
        +  "description": "More jobs. When given, the response also has a `history` object: each job's length, the total with overlapping periods counted once, and the gaps between jobs.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "endIso": {
        +        "description": "YYYY-MM-DD. Leave out for a job that is still going on (today is used).",
        +        "type": "string"
        +      },
        +      "startIso": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "startIso"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 50,
        +  "type": "array"
        +}
    • Addedconverters_loan_interest
    • Addedconverters_mortgage
    • Addedconverters_refinance
    • Addedconverters_retirement
    • Changedconverters_roman1 field changed
      • addedInput schema / properties / value / description
        Added value: +"toRoman: a whole number from 1 to 3,999,999 (above 3,999 the thousands get a bar over every letter, written with the Unicode combining overline U+0305). fromRoman: a numeral; barred letters may be typed with U+0305 or as a bracketed group such as (V) for 5,000."
    • Changedconverters_self_employment_tax4 fields changed
      • addedInput schema / properties / includeIncomeTax
        Added value: +{
        +  "description": "true adds federal income tax (2026 brackets, standard deduction, after the half self-employment tax deduction) so quarterlyPayment is the whole estimated payment. Default false: quarterlyPayment is the self-employment tax divided by 4.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / priorYearAgi
        Added value: +{
        +  "description": "With priorYearTax: last year's adjusted gross income; above $150,000 ($75,000 married filing separately) the safe harbour is 110% of last year's tax.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / priorYearTax
        Added value: +{
        +  "description": "With includeIncomeTax: last year's total tax, for the IRS safe-harbour alternative (100% of last year's tax, or 110% if priorYearAgi is above the threshold).",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / state
        Added value: +{
        +  "description": "With includeIncomeTax: a US state (two-letter code or name) to add that state's income tax on the profit.",
        +  "type": "string"
        +}
    • Changedconverters_student_loan9 fields changed
      • addedInput schema / properties / dependents
        Added value: +{
        +  "description": "Dependents claimed on the tax return (RAP takes $50 a month off for each). With income.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / householdSize
        Added value: +{
        +  "description": "Household size for the IBR poverty guideline. With income. Default 1.",
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / ibr
        Added value: +{
        +  "description": "Also show IBR at 10% (loans from 1 July 2014, 20 years) or 15% (older loans, 25 years) of discretionary income. Only for borrowers whose loans were all made before 1 July 2026.",
        +  "enum": [
        +    10,
        +    15
        +  ],
        +  "type": "number"
        +}
      • addedInput schema / properties / income
        Added value: +{
        +  "description": "Yearly adjusted gross income. Adds incomeDriven: the Repayment Assistance Plan payment (and IBR with ibr) beside the standard plan, with total paid, term and forgiven balance.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / monthlyPayment / description
        Added value: +"The payment you make. Send this or standardTermYears."
      • addedInput schema / properties / refinance
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "A private refinance on the same balance: returns the new payment and the interest saved or added.",
        +  "properties": {
        +    "annualRatePct": {
        +      "maximum": 100,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "years": {
        +      "maximum": 40,
        +      "minimum": 1,
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "annualRatePct",
        +    "years"
        +  ],
        +  "type": "object"
        +}
      • addedInput schema / properties / standardTermYears
        Added value: +{
        +  "description": "Use the standard payment for this many years instead of sending monthlyPayment.",
        +  "type": "number"
        +}
      • addedInput schema / properties / state
        Added value: +{
        +  "description": "Two-letter state code. AK and HI use their own poverty guideline for IBR; anything else the 48-state figure.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "principal",
        -  "annualRatePct",
        -  "monthlyPayment"
        -]New value: +[
        +  "principal",
        +  "annualRatePct"
        +]
    • Changedconverters_tdee3 fields changed
      • addedInput schema / properties / cycleGoal
        Added value: +{
        +  "description": "Which daily target to spread over the week. Default maintain.",
        +  "enum": [
        +    "maintain",
        +    "cut",
        +    "bulk"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / highDays
        Added value: +{
        +  "description": "Weekly calorie cycling: how many higher-calorie days a week (1 to 3).",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / swingPct
        Added value: +{
        +  "description": "How far above the daily target the higher days sit, in percent. Default 15.",
        +  "maximum": 30,
        +  "minimum": 1,
        +  "type": "number"
        +}
    • Changedconverters_uk_tax4 fields changed
      • addedInput schema / properties / benefits
        Added value: +{
        +  "description": "Taxable benefits in kind per year, in pounds: added to taxable pay for income tax, not charged employee National Insurance.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / bonus
        Added value: +{
        +  "description": "A one-off bonus or overtime in the year, in pounds. Returns what it adds on its own in 'bonus'.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / marriageAllowance
        Added value: +{
        +  "description": "Marriage Allowance when no taxCode is sent: receive (tax reduced by up to £252) or give (£1,260 of allowance). Ignored when taxCode is sent.",
        +  "enum": [
        +    "none",
        +    "receive",
        +    "give"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / taxCode
        Added value: +{
        +  "description": "Optional PAYE tax code as printed on a payslip: 1257L, 1383M, 0T, BR, D0, D1, NT, K475, S1257L (Scotland), C1257L (Wales), SBR, SD0 to SD3. A code replaces the standard allowance. Omit it for the standard allowance and taper.",
        +  "maxLength": 20,
        +  "type": "string"
        +}
    • Changedconverters_vat_gst4 fields changed
      • changedInput schema / properties / amount / description
        Previous value: -"The amount, in any currency."New value: +"The amount, in any currency. Send this, or vatAmount, or lines."
      • addedInput schema / properties / lines
        Added value: +{
        +  "description": "Invoice lines at different rates: returns a subtotal per rate (byRate) and a grand total. Use instead of amount.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "amount": {
        +        "description": "The line amount (net, or gross when amountIncludesTax is true).",
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "ratePct": {
        +        "description": "This line's rate in percent. Defaults to the top-level ratePct or the country's standard rate.",
        +        "minimum": 0,
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "amount"
        +    ],
        +    "type": "object"
        +  },
        +  "maxItems": 200,
        +  "type": "array"
        +}
      • addedInput schema / properties / vatAmount
        Added value: +{
        +  "description": "The VAT amount shown on a receipt: returns the net and gross it implies at the rate (needs a rate above 0). Use instead of amount.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "amount"
        -]
    • Addedconverters_vat_rates
    • Changedfancy_text1 field changed
      • addedInput schema / properties / intensity
        Added value: +{
        +  "description": "Zalgo only: 1 (light) to 3 (heavy), default 2",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedparse_user_agent1 field changed
      • addedInput schema / properties / clientHints
        Added value: +{
        +  "description": "Optional: pasted Sec-CH-UA request headers; adds a 'clientHints' object (for example Windows 11)",
        +  "type": "string"
        +}
    • Changedpdf_watermark1 field changed
      • addedInput schema / properties / layer
        Added value: +{
        +  "description": "above (default) draws over the page; behind draws under the page's own content so text stays dark (a full-page scan or solid background hides it)",
        +  "enum": [
        +    "above",
        +    "behind"
        +  ],
        +  "type": "string"
        +}
    • Changedplanning_monthly_budget2 fields changed
      • addedInput schema / properties / expenses / items / properties / kind
        Added value: +{
        +  "description": "50/30/20 bucket: need, want, savings, or debt (a required debt payment, counted in needs). When no expense has a kind the site's name-based guess is used for plan, and without kind or period on any expense the response is the first version.",
        +  "enum": [
        +    "need",
        +    "want",
        +    "savings",
        +    "debt"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / expenses / items / properties / period
        Added value: +{
        +  "description": "month (default) or year: a yearly amount counts as amount / 12 a month (a sinking fund for an annual bill).",
        +  "enum": [
        +    "month",
        +    "year"
        +  ],
        +  "type": "string"
        +}
    • Changedtext_similarity1 field changed
      • addedInput schema / properties / phraseWords
        Added value: +{
        +  "description": "When given (3 to 8), the response also has a `phrases` object: how much of each text sits inside phrases of this many words that both texts share (case and punctuation ignored). Shorter texts use shorter phrases. Compares the two texts with each other only; it is not a web plagiarism check.",
        +  "maximum": 8,
        +  "minimum": 3,
        +  "type": "integer"
        +}
  14. 1 tool update
    • Changedtext_flyer_outline1 field changed
      • changedInput schema / properties / offer / description
        Previous value: -"What is offered, for example 'Free first lesson'."New value: +"What is offered, for example 'First lesson half price'."
  15. 11 tool updates
    • Changedcalculate_sales_tax3 fields changed
      • addedInput schema / properties / state
        Added value: +{
        +  "description": "US state (two-letter code such as TX, or the full name; DC included). Looks up the STATE base sales tax rate only (Tax Foundation, 1 July 2026). Local city, county and district rates are not included.",
        +  "type": "string"
        +}
      • addedInput schema / properties / taxPercent / description
        Added value: +"Tax rate in percent. Required unless state is sent. Takes priority over state."
      • changedInput schema / required
        Previous value: -[
        -  "amount",
        -  "taxPercent"
        -]New value: +[
        +  "amount"
        +]
    • Changedconverters_401k3 fields changed
      • addedInput schema / properties / age
        Added value: +{
        +  "description": "Your age. Used to pick the 2026 IRS employee limit ($24,500; plus $8,000 catch-up at 50-59 and 64+, $11,250 at 60-63). Without it the base limit is used.",
        +  "type": "number"
        +}
      • addedInput schema / properties / applyIrsLimit
        Added value: +{
        +  "description": "true caps annualContribution at the IRS limit for your age. Default false: the contribution is used as sent and a warning is returned if it is over the limit.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / employerMatchPct / description
        Added value: +"Employer match as a percent of your own contribution (50 = 50 cents per dollar)."
    • Changedconverters_india_income_tax6 fields changed
      • addedInput schema / properties / age
        Added value: +{
        +  "description": "Age group (old regime slabs). Default below60.",
        +  "enum": [
        +    "below60",
        +    "60to80",
        +    "above80"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / deductions
        Added value: +{
        +  "description": "Old regime only: total of 80C, 80D, HRA, home-loan interest and other deductions.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / employerNps
        Added value: +{
        +  "description": "Employer NPS contribution, section 80CCD(2), capped at 14% of salary (new) or 10% (old).",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / income / description
        Added value: +"Annual salary or pension income in rupees. The standard deduction is taken off it."
      • addedInput schema / properties / otherIncome
        Added value: +{
        +  "description": "Other annual income in rupees (business, interest, rent). No standard deduction.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / regime
        Added value: +{
        +  "description": "Which regime the top-level tax and effectiveRatePct report. Default old. Both regimes are always returned in 'regimes'.",
        +  "enum": [
        +    "old",
        +    "new"
        +  ],
        +  "type": "string"
        +}
    • Changedconverters_paycheck9 fields changed
      • addedInput schema / properties / federalRatePct / description
        Added value: +"Optional flat federal rate in percent. When sent it replaces the 2026 bracket calculation (first-version behaviour)."
      • addedInput schema / properties / filingStatus
        Added value: +{
        +  "description": "Federal filing status. Default single.",
        +  "enum": [
        +    "single",
        +    "married-joint",
        +    "married-separate",
        +    "head-of-household"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / grossAnnual / description
        Added value: +"Gross pay for the year, in US dollars."
      • addedInput schema / properties / otherDeductionPerCheck / description
        Added value: +"Other after-tax deduction taken from each paycheck, in dollars."
      • addedInput schema / properties / payPeriodsPerYear / description
        Added value: +"Pay periods per year: 52, 26, 24 or 12. Default 24."
      • addedInput schema / properties / retirementPct
        Added value: +{
        +  "description": "Traditional 401(k)/403(b) deferral as a percent of gross pay. Lowers income tax but not FICA.",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / section125Annual
        Added value: +{
        +  "description": "Yearly pre-tax health, dental, HSA or FSA deductions. Lowers income tax and FICA.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / state
        Added value: +{
        +  "description": "US state (two-letter code such as NY, or the full name; DC included). Adds that state's 2026 income tax from the same table as the website. Without it, no state income tax is included.",
        +  "type": "string"
        +}
      • addedInput schema / properties / stateRatePct / description
        Added value: +"Optional flat state rate in percent. When sent it replaces the state lookup (first-version behaviour)."
    • Changedconverters_rmd3 fields changed
      • addedInput schema / properties / accountBalance / description
        Added value: +"Account balance on 31 December of the previous year."
      • addedInput schema / properties / age / description
        Added value: +"Age you reach this year (72 to 120). The IRS Uniform Lifetime Table divisor for that age is used."
      • addedInput schema / properties / birthYear
        Added value: +{
        +  "description": "Birth year. Adds the SECURE 2.0 RMD start age (73 for 1951-1959, 75 for 1960 or later) and whether an RMD is required yet.",
        +  "type": "number"
        +}
    • Changedconverters_self_employment_tax3 fields changed
      • addedInput schema / properties / filingStatus
        Added value: +{
        +  "description": "Federal filing status. Default single.",
        +  "enum": [
        +    "single",
        +    "married-joint",
        +    "married-separate",
        +    "head-of-household"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / netProfit / description
        Added value: +"Net self-employment profit for the year, in US dollars."
      • addedInput schema / properties / w2Wages
        Added value: +{
        +  "description": "W-2 wages from a job in the same year. They use up part of the Social Security wage base and count toward the Additional Medicare threshold.",
        +  "minimum": 0,
        +  "type": "number"
        +}
    • Changedconverters_social_security6 fields changed
      • addedInput schema / properties / annualEarnings
        Added value: +{
        +  "description": "Alternative to AIME: current yearly earnings (capped at the 2026 wage base of $184,500). AIME is estimated from it.",
        +  "type": "number"
        +}
      • addedInput schema / properties / averageIndexedMonthlyEarnings / description
        Added value: +"Your AIME (average indexed monthly earnings) from your SSA statement. Send this or annualEarnings."
      • addedInput schema / properties / birthYear
        Added value: +{
        +  "description": "Birth year, which sets full retirement age (67 if born 1960 or later). Default 1960.",
        +  "type": "number"
        +}
      • addedInput schema / properties / claimAge / description
        Added value: +"Age you start benefits, 62 to 70 (decimals such as 62.5 are rounded to whole months). Default 67."
      • addedInput schema / properties / yearsWorked
        Added value: +{
        +  "description": "With annualEarnings: years of work, up to 35 (default 35).",
        +  "type": "number"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "averageIndexedMonthlyEarnings"
        -]
    • Changedconverters_state_tax6 fields changed
      • addedInput schema / properties / filingStatus
        Added value: +{
        +  "description": "Filing status for the state schedule. Default single.",
        +  "enum": [
        +    "single",
        +    "married-joint",
        +    "married-separate",
        +    "head-of-household"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / includeLocal
        Added value: +{
        +  "description": "true adds an average local income tax where the state has local taxes (an estimate). Default false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / income / description
        Added value: +"Annual income subject to state tax, in US dollars."
      • addedInput schema / properties / ratePct / description
        Added value: +"Flat rate in percent (first-version behaviour). Takes priority over state."
      • addedInput schema / properties / state
        Added value: +{
        +  "description": "US state (two-letter code such as NY, or the full name; DC included). Looks up that state's 2026 brackets, standard deduction and exemptions. Send this or ratePct.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "income",
        -  "ratePct"
        -]New value: +[
        +  "income"
        +]
    • Changedconverters_uk_tax4 fields changed
      • addedInput schema / properties / income / description
        Added value: +"Gross annual salary in pounds."
      • addedInput schema / properties / pensionPct
        Added value: +{
        +  "description": "Your pension contribution as a percent of salary.",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / pensionType
        Added value: +{
        +  "description": "How the pension is taken: salary sacrifice (default, lowers tax and National Insurance), net pay arrangement (lowers tax only) or relief at source.",
        +  "enum": [
        +    "sacrifice",
        +    "netpay",
        +    "ras"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / scotland
        Added value: +{
        +  "description": "true for Scottish income tax bands. Default false (England, Wales, Northern Ireland).",
        +  "type": "boolean"
        +}
    • Changedconverters_us_income_tax9 fields changed
      • addedInput schema / properties / deduction
        Added value: +{
        +  "description": "With grossIncome. Default standard (2026 amount for the filing status).",
        +  "enum": [
        +    "standard",
        +    "itemized"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / filingStatus
        Added value: +{
        +  "description": "Federal filing status. Default single.",
        +  "enum": [
        +    "single",
        +    "married-joint",
        +    "married-separate",
        +    "head-of-household"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / grossIncome
        Added value: +{
        +  "description": "Gross income before deductions (wages or profit). The standard or itemized deduction is applied for you, and FICA and optional state tax are added. Send this OR taxableIncome.",
        +  "type": "number"
        +}
      • addedInput schema / properties / itemizedDeductions
        Added value: +{
        +  "description": "With deduction 'itemized': the total of your itemized deductions.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / preTaxDeductions
        Added value: +{
        +  "description": "With grossIncome: yearly pre-tax deductions such as traditional 401(k). Lowers income tax but not FICA.",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / selfEmployed
        Added value: +{
        +  "description": "With grossIncome: treat the income as self-employment profit (self-employment tax instead of employee FICA).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / state
        Added value: +{
        +  "description": "With grossIncome: US state (two-letter code or name) to add that state's 2026 income tax.",
        +  "type": "string"
        +}
      • addedInput schema / properties / taxableIncome / description
        Added value: +"Income after deductions. Send this OR grossIncome."
      • removedInput schema / required
        Removed value: -[
        -  "taxableIncome"
        -]
    • Changedconverters_vat_gst5 fields changed
      • addedInput schema / properties / amount / description
        Added value: +"The amount, in any currency."
      • addedInput schema / properties / amountIncludesTax / description
        Added value: +"true when amount already includes the tax (the tax is taken out of it)."
      • addedInput schema / properties / country
        Added value: +{
        +  "description": "Country name (for example Germany, United Kingdom, Australia, Singapore, UAE). Looks up the standard VAT/GST rate. Canada has one entry per province group, e.g. 'Canada - Ontario HST'. The error for an unknown name lists every supported entry.",
        +  "type": "string"
        +}
      • addedInput schema / properties / ratePct / description
        Added value: +"VAT/GST rate in percent. Required unless country is sent. Takes priority over country."
      • changedInput schema / required
        Previous value: -[
        -  "amount",
        -  "ratePct"
        -]New value: +[
        +  "amount"
        +]
  16. 6 tool updates
    • Changedecommerce_etsy_listing_check2 fields changed
      • changedInput schema / properties / tags / description
        Previous value: -"Tags separated by commas or new lines"New value: +"Tags separated by commas, semicolons or new lines. Errors: more than 13 tags, a tag over 20 characters, a repeated tag, a tag starting with a hyphen or apostrophe."
      • addedInput schema / properties / title / description
        Added value: +"The listing title. Errors: more than 140 characters; the characters % : & used more than once each; any of $ ^ \\ and the backtick. Everything else is advice."
    • Changedpublishing_isbn1 field changed
      • addedInput schema / properties / isbn / description
        Added value: +"An ISBN-10 or ISBN-13, with or without hyphens or spaces, optionally written with an ISBN prefix."
    • Changedpublishing_kdp_description3 fields changed
      • addedInput schema / properties / heading / description
        Added value: +"Tag used for headings. Default h4."
      • changedInput schema / properties / html / description
        Previous value: -"HTML to clean to the tags KDP allows"New value: +"HTML to clean to the tags KDP allows; what was removed or changed is reported."
      • changedInput schema / properties / text / description
        Previous value: -"Plain text; blank lines make paragraphs"New value: +"Plain text; blank lines make paragraphs. Send text or html (html wins when both are sent)."
    • Changedpublishing_onix48 fields changed
      • addedInput schema / properties / audience / description
        Added value: +"ONIX audience code: 01 general/trade, 02 children/juvenile, 03 young adult, 04 primary and secondary education, 05 college/higher education, 06 professional and scholarly. Default: not stated."
      • addedInput schema / properties / audience / enum
        Added value: +[
        +  "01",
        +  "02",
        +  "03",
        +  "04",
        +  "05",
        +  "06"
        +]
      • addedInput schema / properties / availability / description
        Added value: +"ONIX product availability code (code list 65). Default 20 (available). 10 not yet available, 40 not available."
      • addedInput schema / properties / availability / pattern
        Added value: +"^[0-9]{2}$"
      • addedInput schema / properties / contributors / description
        Added value: +"At least one named contributor."
      • addedInput schema / properties / contributors / items / properties / inverted / description
        Added value: +"Name inverted for sorting, written Last name, First name (a warning when there is no comma)."
      • addedInput schema / properties / contributors / items / properties / inverted / maxLength
        Added value: +300
      • addedInput schema / properties / contributors / items / properties / name / description
        Added value: +"Name as printed, for example Jane Q. Writer."
      • addedInput schema / properties / contributors / items / properties / name / maxLength
        Added value: +300
      • addedInput schema / properties / contributors / items / properties / name / minLength
        Added value: +1
      • changedInput schema / properties / contributors / items / properties / role / description
        Previous value: -"ONIX role code, default A01 (author)"New value: +"ONIX contributor role code (code list 17). Default A01 (author). Common: B01 editor, A12 illustrator, B06 translator."
      • addedInput schema / properties / contributors / items / properties / role / pattern
        Added value: +"^[A-Z][0-9]{2}$"
      • addedInput schema / properties / contributors / maxItems
        Added value: +50
      • addedInput schema / properties / contributors / minItems
        Added value: +1
      • addedInput schema / properties / description / description
        Added value: +"The main description; a warning when missing."
      • addedInput schema / properties / description / maxLength
        Added value: +100000
      • addedInput schema / properties / isbn / description
        Added value: +"The ISBN-13 (978 or 979, valid check digit), hyphens allowed. An ISBN-10 is rejected with the ISBN-13 to use."
      • addedInput schema / properties / isbn / maxLength
        Added value: +40
      • addedInput schema / properties / isbn / minLength
        Added value: +1
      • addedInput schema / properties / language / description
        Added value: +"Three-letter ISO 639-2/B language code in lower case, for example eng, fre, ger, spa. Default eng. Anything else is reported as an error issue (422)."
      • addedInput schema / properties / language / maxLength
        Added value: +10
      • addedInput schema / properties / pageCount / description
        Added value: +"Number of pages as digits, 1 to 999999, written as text. Anything else is an error issue (422); print forms without it get a warning."
      • addedInput schema / properties / pageCount / maxLength
        Added value: +10
      • addedInput schema / properties / prices / items / properties / amount / description
        Added value: +"Digits with a decimal point and at most 2 decimals, for example 14.99. 0 and any other format are reported as an error issue (422)."
      • addedInput schema / properties / prices / items / properties / amount / maxLength
        Added value: +20
      • addedInput schema / properties / prices / items / properties / currency / description
        Added value: +"Three-letter ISO 4217 code in capitals, for example USD. Anything else is an error issue (422)."
      • addedInput schema / properties / prices / items / properties / currency / maxLength
        Added value: +10
      • addedInput schema / properties / prices / items / properties / type / description
        Added value: +"ONIX price type: 01 recommended retail price EXCLUDING tax, 02 INCLUDING tax. Default by currency: 01 for USD and CAD (their prices are quoted before sales tax), 02 for every other currency. A warning is returned when USD or CAD is sent with 02. Two prices with the same currency and type are rejected."
      • addedInput schema / properties / prices / items / properties / type / enum
        Added value: +[
        +  "01",
        +  "02"
        +]
      • addedInput schema / properties / prices / maxItems
        Added value: +20
      • changedInput schema / properties / productForm / description
        Previous value: -"ONIX form code, for example BC paperback, BB hardback"New value: +"ONIX product form: BC paperback (default), BB hardback, EA digital download (written with form detail E101, EPUB)."
      • addedInput schema / properties / productForm / enum
        Added value: +[
        +  "BB",
        +  "BC",
        +  "EA"
        +]
      • changedInput schema / properties / pubDate / description
        Previous value: -"YYYYMMDD, YYYY-MM-DD or YYYY-MM"New value: +"Publication date as YYYY-MM-DD, YYYY-MM or YYYY, and a real calendar date. Anything else is reported as an error issue (422)."
      • addedInput schema / properties / pubDate / maxLength
        Added value: +20
      • addedInput schema / properties / publisher / maxLength
        Added value: +300
      • addedInput schema / properties / publisher / minLength
        Added value: +1
      • addedInput schema / properties / shortDescription / description
        Added value: +"Up to 350 characters."
      • addedInput schema / properties / shortDescription / maxLength
        Added value: +350
      • addedInput schema / properties / subjects / items / properties / code / description
        Added value: +"A BISAC code such as FIC027020 (three letters, six digits) or a Thema code such as FBA or 1KBB."
      • addedInput schema / properties / subjects / items / properties / code / maxLength
        Added value: +40
      • addedInput schema / properties / subjects / items / properties / code / minLength
        Added value: +1
      • addedInput schema / properties / subjects / maxItems
        Added value: +20
      • addedInput schema / properties / subtitle / maxLength
        Added value: +1000
      • addedInput schema / properties / territory / description
        Added value: +"WORLD, or two-letter country codes separated by spaces, for example US CA GB. Default WORLD. Anything else is an error issue (422)."
      • addedInput schema / properties / territory / maxLength
        Added value: +200
      • addedInput schema / properties / title / description
        Added value: +"The product title."
      • addedInput schema / properties / title / maxLength
        Added value: +1000
      • addedInput schema / properties / title / minLength
        Added value: +1
    • Changedpublishing_print_royalty11 fields changed
      • changedInput schema / properties / fixedCharge / description
        Previous value: -"Fixed printing charge per copy"New value: +"Fixed printing charge per copy, in your currency (0 or more)."
      • addedInput schema / properties / listPrice / description
        Added value: +"The list (cover) price per copy, 0 or more. At 0 nothing is earned, so the royalty is the printing cost as a loss."
      • removedInput schema / properties / listPrice / exclusiveMinimum
        Removed value: -0
      • addedInput schema / properties / listPrice / minimum
        Added value: +0
      • changedInput schema / properties / method / description
        Previous value: -"rate: royalty percent of list price; wholesale: discount given to retailers"New value: +"rate: you earn percent of the list price. wholesale: percent is the discount given to retailers and you earn the rest."
      • addedInput schema / properties / pages / description
        Added value: +"Page count, 1 to 2000."
      • changedInput schema / properties / perPageCharge / description
        Previous value: -"Charge per page"New value: +"Printing charge per page, in the same currency (0 or more). Printing cost per copy = fixedCharge + perPageCharge x pages."
      • addedInput schema / properties / percent / description
        Added value: +"The royalty rate (method rate) or the retailer discount (method wholesale), 0 to 100."
      • addedInput schema / properties / targetRoyalty / description
        Added value: +"The royalty per copy you want to earn, 0 or more. When given, priceForTargetRoyalty is the lowest list price (to the cent) that earns it; null when the royalty share is 0."
      • addedInput schema / properties / targetRoyalty / minimum
        Added value: +0
      • addedInput schema / properties / upfrontCost / description
        Added value: +"One-off cost (editing, cover, ISBN), 0 or more. When given, copiesToRecoverUpfront is how many copies earn it back; null when each copy earns nothing."
    • Changedpublishing_spine_width23 fields changed
      • addedInput schema / properties / bleedIn / description
        Added value: +"Bleed in inches added on every outer edge, 0 to 1. Default 0.125."
      • addedInput schema / properties / bleedIn / maximum
        Added value: +1
      • addedInput schema / properties / bleedIn / minimum
        Added value: +0
      • addedInput schema / properties / dpi / description
        Added value: +"Resolution used to give the cover size in pixels, a whole number from 72 to 1200. Default 300."
      • addedInput schema / properties / dpi / maximum
        Added value: +1200
      • addedInput schema / properties / dpi / minimum
        Added value: +72
      • changedInput schema / properties / dpi / type
        Previous value: -"number"New value: +"integer"
      • addedInput schema / properties / pages / description
        Added value: +"Page count, a whole number from 1 to 2000. Printed books have an even count; an odd number returns a warning."
      • addedInput schema / properties / pages / maximum
        Added value: +2000
      • addedInput schema / properties / pages / minimum
        Added value: +1
      • addedInput schema / properties / platform / description
        Added value: +"Printer the numbers are for. Default kdp. For kdp a warning is returned when pages is outside 24 to 828 (black and white, white paper); the other printers have no built-in page limits."
      • addedInput schema / properties / spineAllowanceIn / description
        Added value: +"Extra width in inches added to (or, if negative, removed from) the spine, -0.5 to 0.5. Default 0."
      • addedInput schema / properties / spineAllowanceIn / maximum
        Added value: +0.5
      • addedInput schema / properties / spineAllowanceIn / minimum
        Added value: +-0.5
      • changedInput schema / properties / thicknessIn / description
        Previous value: -"Paper thickness in inches per page, for example 0.002252 for KDP white paper"New value: +"Paper thickness in inches per page (one sheet is two pages), above 0 and at most 0.02, for example 0.002252 for KDP black and white on white paper."
      • addedInput schema / properties / thicknessIn / exclusiveMinimum
        Added value: +0
      • addedInput schema / properties / thicknessIn / maximum
        Added value: +0.02
      • addedInput schema / properties / trimHeightIn / description
        Added value: +"Trim height in inches, 2 to 14."
      • addedInput schema / properties / trimHeightIn / maximum
        Added value: +14
      • addedInput schema / properties / trimHeightIn / minimum
        Added value: +2
      • addedInput schema / properties / trimWidthIn / description
        Added value: +"Trim width of one page in inches, 2 to 14."
      • addedInput schema / properties / trimWidthIn / maximum
        Added value: +14
      • addedInput schema / properties / trimWidthIn / minimum
        Added value: +2
  17. 2 tool updates
    • Changedsecurity_barcode_code1286 fields changed
      • addedInput schema / properties / format
        Added value: +{
        +  "enum": [
        +    "json",
        +    "svg"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / height / maximum
        Added value: +400
      • addedInput schema / properties / height / minimum
        Added value: +10
      • addedInput schema / properties / text / maxLength
        Added value: +80
      • addedInput schema / properties / text / minLength
        Added value: +1
      • addedInput schema / properties / text / pattern
        Added value: +"^[\\x20-\\x7E]+$"
    • Changedsecurity_qr2 fields changed
      • addedInput schema / properties / format
        Added value: +{
        +  "enum": [
        +    "json",
        +    "svg"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / text / minLength
        Added value: +1
  18. 4 tool updates
    • Changedparaphrase_text1 field changed
      • addedInput schema / properties / strength
        Added value: +{
        +  "enum": [
        +    "low",
        +    "medium",
        +    "high",
        +    "light",
        +    "strong"
        +  ],
        +  "type": "string"
        +}
    • Changedtext_banner_copy7 fields changed
      • addedInput schema / properties / cta / description
        Added value: +"Optional call to action, for example 'Visit us today'. Default: Learn more."
      • addedInput schema / properties / cta / maxLength
        Added value: +80
      • addedInput schema / properties / maxCtaChars
        Added value: +{
        +  "description": "Call to action length limit in characters (default 25).",
        +  "maximum": 60,
        +  "minimum": 5,
        +  "type": "integer"
        +}
      • addedInput schema / properties / maxHeadlineChars
        Added value: +{
        +  "description": "Headline length limit in characters (default 40).",
        +  "maximum": 200,
        +  "minimum": 10,
        +  "type": "integer"
        +}
      • addedInput schema / properties / message / description
        Added value: +"What the banner should say, for example 'Grand opening this Saturday'. A long message is split into a headline and a subheadline."
      • addedInput schema / properties / message / maxLength
        Added value: +300
      • addedInput schema / properties / message / minLength
        Added value: +1
    • Changedtext_flyer_outline15 fields changed
      • addedInput schema / properties / audience / description
        Added value: +"Who it is for, for example 'new students'."
      • addedInput schema / properties / audience / maxLength
        Added value: +120
      • addedInput schema / properties / audience / minLength
        Added value: +1
      • addedInput schema / properties / contact
        Added value: +{
        +  "description": "Optional phone, email or website, used as given.",
        +  "maxLength": 160,
        +  "type": "string"
        +}
      • addedInput schema / properties / cta / description
        Added value: +"The action you want, for example 'Book your spot'."
      • addedInput schema / properties / cta / maxLength
        Added value: +80
      • addedInput schema / properties / cta / minLength
        Added value: +1
      • addedInput schema / properties / date
        Added value: +{
        +  "description": "Optional date, used as given.",
        +  "maxLength": 60,
        +  "type": "string"
        +}
      • addedInput schema / properties / details
        Added value: +{
        +  "description": "Optional bullet points, used as given.",
        +  "items": {
        +    "maxLength": 200,
        +    "type": "string"
        +  },
        +  "maxItems": 10,
        +  "type": "array"
        +}
      • addedInput schema / properties / location
        Added value: +{
        +  "description": "Optional place, used as given.",
        +  "maxLength": 160,
        +  "type": "string"
        +}
      • addedInput schema / properties / offer / description
        Added value: +"What is offered, for example 'Free first lesson'."
      • addedInput schema / properties / offer / maxLength
        Added value: +200
      • addedInput schema / properties / offer / minLength
        Added value: +1
      • addedInput schema / properties / time
        Added value: +{
        +  "description": "Optional time, used as given.",
        +  "maxLength": 60,
        +  "type": "string"
        +}
      • addedInput schema / properties / title
        Added value: +{
        +  "description": "Optional headline. Default: the offer.",
        +  "maxLength": 120,
        +  "type": "string"
        +}
    • Changedtext_menu_outline15 fields changed
      • addedInput schema / properties / keepOrder
        Added value: +{
        +  "description": "true keeps your section order. Default false: sections are put in the usual menu order (breakfast, starters, soups and salads, mains, sides, desserts, drinks).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / sections / description
        Added value: +"Menu sections."
      • addedInput schema / properties / sections / items / properties / items / description
        Added value: +"Dish names, or {name, description, price}. A plain string may carry its own description ('Margherita pizza with basil', 'Soup (tomato, basil)', 'Soup - tomato and basil') or a trailing price ('Burger $12'); those words are used as given."
      • addedInput schema / properties / sections / items / properties / items / items / anyOf
        Added value: +[
        +  {
        +    "maxLength": 200,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "description": {
        +        "maxLength": 300,
        +        "type": "string"
        +      },
        +      "name": {
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "price": {
        +        "anyOf": [
        +          {
        +            "maxLength": 30,
        +            "type": "string"
        +          },
        +          {
        +            "type": "number"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "name"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / sections / items / properties / items / items / type
        Removed value: -"string"
      • addedInput schema / properties / sections / items / properties / items / maxItems
        Added value: +100
      • addedInput schema / properties / sections / items / properties / items / minItems
        Added value: +1
      • addedInput schema / properties / sections / items / properties / name / description
        Added value: +"Section name, for example Starters, Mains, Desserts, Drinks."
      • addedInput schema / properties / sections / items / properties / name / maxLength
        Added value: +80
      • addedInput schema / properties / sections / items / properties / name / minLength
        Added value: +1
      • addedInput schema / properties / sections / maxItems
        Added value: +30
      • addedInput schema / properties / sections / minItems
        Added value: +1
      • addedInput schema / properties / venue / description
        Added value: +"Restaurant or cafe name."
      • addedInput schema / properties / venue / maxLength
        Added value: +120
      • addedInput schema / properties / venue / minLength
        Added value: +1
  19. 3 tool updates
    • Changedpdf_watermark9 fields changed
      • addedInput schema / properties / color
        Added value: +{
        +  "description": "Text colour, 6-digit hex. Default 808080",
        +  "pattern": "^#?[0-9a-fA-F]{6}$",
        +  "type": "string"
        +}
      • addedInput schema / properties / fontSize / description
        Added value: +"Points, 6 to 400. Default: sized automatically to fill the page"
      • addedInput schema / properties / fontSize / maximum
        Added value: +400
      • addedInput schema / properties / fontSize / minimum
        Added value: +6
      • addedInput schema / properties / opacity / description
        Added value: +"0.05 to 1. Default 0.4"
      • changedInput schema / properties / opacity / minimum
        Previous value: -0New value: +0.05
      • addedInput schema / properties / rotationDegrees / description
        Added value: +"Degrees, default 45 (0 is horizontal)"
      • addedInput schema / properties / rotationDegrees / maximum
        Added value: +360
      • addedInput schema / properties / rotationDegrees / minimum
        Added value: +-360
    • Changedtext_ascii_art5 fields changed
      • addedInput schema / properties / fill
        Added value: +{
        +  "description": "Optional single visible ASCII character used to draw the letters (default #).",
        +  "maxLength": 1,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / font
        Added value: +{
        +  "description": "banner (default): 5-row block letters. wide: the same letters twice as wide. box: one line of plain text inside a box.",
        +  "enum": [
        +    "banner",
        +    "wide",
        +    "box"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / text / description
        Added value: +"Text to draw. Plain ASCII only (letters, digits, space and . , ! ? - _ : ; ' \" + = / \\ ( ) @ # & * < >); lowercase is drawn as capitals. Use \\n for several lines (up to 6 lines of 20 characters). Emoji and non-ASCII characters return 400."
      • addedInput schema / properties / text / maxLength
        Added value: +200
      • addedInput schema / properties / text / minLength
        Added value: +1
    • Changedtext_product_description13 fields changed
      • addedInput schema / properties / audience / description
        Added value: +"Who it is for, for example 'busy commuters'. A leading 'for' is fine."
      • addedInput schema / properties / audience / maxLength
        Added value: +200
      • addedInput schema / properties / audience / minLength
        Added value: +1
      • addedInput schema / properties / benefits / description
        Added value: +"What the product does for the buyer, in any form: 'keeps water cold', 'keep water cold', 'to keep water cold', 'keeping water cold', 'designed for comfort' or 'long battery life'."
      • addedInput schema / properties / benefits / items / maxLength
        Added value: +300
      • addedInput schema / properties / benefits / maxItems
        Added value: +20
      • addedInput schema / properties / benefits / minItems
        Added value: +1
      • addedInput schema / properties / features / description
        Added value: +"Optional specifications or details, same flexible wording as benefits."
      • addedInput schema / properties / features / items / maxLength
        Added value: +300
      • addedInput schema / properties / features / maxItems
        Added value: +20
      • addedInput schema / properties / name / description
        Added value: +"Product name, used as written."
      • addedInput schema / properties / name / maxLength
        Added value: +200
      • addedInput schema / properties / name / minLength
        Added value: +1

Publisher details

Operator
FreeDailyPro
Vendor relationship
Unknown
Trust center
Unknown
Restrictions
Unknown

Related MCP Connectors

  • 13 stateless PDF tools for AI agents: merge, split, rotate, compress, watermark, redact, flatten, repair, add page numbers and fill PDF forms. Files are processed in memory and nothing is stored. Part of FreeDailyPro's 211+ MCP tools; trial key with 20,000 calls/month at freedailypro.com/developers.

  • 55 stateless calculators for AI agents: loans and mortgage amortization, income and sales tax, retirement and FIRE, BMI and health, date and planning, and unit conversions, returned as clean JSON. Nothing is stored. Part of FreeDailyPro's 211+ MCP tools; trial key with 20,000 calls/month at freedailypro.com/developers.

  • 111 tools for AI assistants, so an answer comes from a rule instead of a guess. 84 deterministic utilities. IBAN and VAT validation, cron parsing, regex testing, hashing, JWT decoding, conversion between JSON, CSV, XML and YAML, units, number bases, timezones and date arithmetic. Eleven of them encode Dutch rules that a model tends to get wrong: AOW pension age, inheritance and gift tax, unemployment benefit duration, notice period, severance, the 30 percent ruling, holiday allowance, mileage allowance, and public and school holidays. Five more generate test data that is structurally valid and belongs to nobody: BSN, IBAN, BRP person records, UPA pension files and document numbers. 14 render tools that return a hosted file. HTML or a live URL to PDF, full page screenshots, QR codes, PDF merge and split, images to PDF, image resize, convert and compress, metadata stripping, PDF to DOCX and back. Plus read_page, which returns the readable content of a JavaScript rendered page as Markdown. 4 memory tools give an agent key-value state that survives between sessions, scoped to its own API key. 3 workflow tools list and run saved multi-step workflows on the caller's account. 6 AI tools for the jobs where a model is the right instrument rather than the wrong one: check a message for scam patterns, write a spreadsheet formula, turn a question into SQL, translate code between languages, improve a prompt, draft an email. Utilities and memory are free. Renders and AI tools have a free tier and credit packs. Workflows need an API key, because a workflow belongs to an account rather than to a key. Streamable HTTP at https://toolforte.com/api/mcp

    https://toolforte.com/api/mcp
  • 214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.

    https://aicharged.io/api/v1/mcp

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Multi-tool MCP server for AI agents with 29 tools across web scraping, SEO analysis, screenshot and PDF generation, domain intelligence, content extraction, multi-chain EVM blockchain queries, and security toolkit. Free tier available with no auth required.
    8 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    62 real-time data tools for AI agents via MCP. Finance, crypto, FMCSA, sanctions, courts, weather, vehicles, cybersecurity. One bearer token, one bill. Free tier available.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources