Skip to main content
Glama
Ownership verified

Server Details

Microapp offers premium utility tools for humans and AI agents, accessible at microapp.io and through this MCP endpoint.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 46 of 46 tools scored.

Server CoherenceA
Disambiguation4/5

Most tools have distinct purposes. However, 'hex-to-rgb' is redundant with 'color-converter', which already handles hex-to-RGB conversion, causing potential confusion.

Naming Consistency4/5

Names follow a consistent lowercase-with-hyphens style, but vary in pattern (e.g., 'angle-converter', 'average-calculator', 'dedup-lines'). One tool ('internal-do-not-call') deviates from the descriptive norm.

Tool Count2/5

With 46 tools, the server is heavily populated. Many converters could be merged into a generic unit converter, and there is redundancy, making the surface unnecessarily large for a single server.

Completeness4/5

The server covers a broad range of utility domains: converters, text processing, math, cryptography, etc. Minor redundancies exist (e.g., hex-to-rgb vs color-converter), but the set is otherwise comprehensive.

Available Tools

82 tools
ab-test-calculatorA
Read-onlyIdempotent
Inspect

Two-proportion z-test for A/B conversion-rate experiments. Returns each arm's rate and 95% Wald confidence interval, the absolute and relative lift, the z statistic, the two-tailed p-value, and a significance decision at the given alpha (default 0.05).

ParametersJSON Schema
NameRequiredDescriptionDefault
alphaNoSignificance threshold (default 0.05). p < alpha declares a statistically significant difference. Two-tailed.
control_visitorsYesNumber of unique visitors (or sessions, or impressions — whatever the conversion denominator is) in the control arm. Must be a positive integer.
variant_visitorsYesNumber of unique visitors in the variant arm. Must be a positive integer.
control_conversionsYesNumber of conversions observed in the control arm. Must be a non-negative integer, and cannot exceed control_visitors.
variant_conversionsYesNumber of conversions observed in the variant arm. Must be a non-negative integer, and cannot exceed variant_visitors.

Output Schema

ParametersJSON Schema
NameRequiredDescription
alphaYesSignificance threshold used (defaults to 0.05).
winnerYesWhich arm has the higher observed rate ('tie' if exactly equal). This is the observed winner regardless of significance — pair it with `significant` to know whether the result is reliable.
p_valueYesTwo-tailed p-value from the standard normal distribution.
z_scoreYesTwo-proportion z statistic with pooled standard error.
control_ciYes95% Wald confidence interval for the control rate. Bounds are clamped to [0, 1].
variant_ciYes95% Wald confidence interval for the variant rate. Bounds are clamped to [0, 1].
significantYesTrue when p_value < alpha. The standard win/no-win decision.
control_rateYesControl conversion rate as a proportion in [0, 1].
variant_rateYesVariant conversion rate as a proportion in [0, 1].
absolute_liftYesAbsolute difference in rates: variant_rate − control_rate. Positive means the variant beat the control.
relative_liftYes
Behavior4/5

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

Annotations declare the tool as read-only, idempotent, and non-destructive, which is reinforced by the description's 'Returns...' phrasing. The description goes beyond annotations by detailing the computed outputs (Wald confidence interval, absolute/relative lift, z statistic, two-tailed p-value, significance decision), giving useful insight into its behavior.

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

Conciseness5/5

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

The description is a single, information-dense sentence that efficiently conveys the calculation purpose, the full list of outputs, and the default significance level. No unnecessary words or 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?

Given the presence of a full output schema and a complete input schema, the description adequately covers the tool's purpose, inputs, and outputs. It also notes the default alpha and the two-tailed nature of the test, providing sufficient context for an AI agent to use the tool correctly.

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

Parameters3/5

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

The input schema provides exhaustive descriptions for all five parameters, including constraints and defaults, achieving 100% coverage. The description only mentions the default alpha (0.05) without adding further parameter semantics, so it provides minimal value beyond what the schema already offers.

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

Purpose5/5

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

The description clearly states the tool's function as a two-proportion z-test for A/B conversion-rate experiments, which is a specific statistical procedure. It also lists the exact outputs (rates, confidence interval, lift, z statistic, p-value, significance decision), making it easy to distinguish from sibling tools like ab-test-sample-size.

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

Usage Guidelines4/5

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

The description clearly indicates the tool is for analyzing A/B conversion-rate experiments, which implies its primary use case. It does not explicitly mention when to use an alternative like ab-test-sample-size, but the context is sufficient for an agent to infer the right scenario.

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

ab-test-sample-sizeA
Read-onlyIdempotent
Inspect

Required sample size per arm for a two-proportion A/B test, given the expected baseline conversion rate, the minimum detectable effect (relative lift), the significance threshold alpha (default 0.05, two-tailed), and the statistical power (default 0.80).

ParametersJSON Schema
NameRequiredDescriptionDefault
alphaNoSignificance threshold (default 0.05). Two-tailed.
powerNoStatistical power 1−β (default 0.80).
baseline_rateYesExpected control conversion rate as a proportion in (0, 1). E.g. 0.05 for 5%.
minimum_detectable_effectYesSmallest relative lift you want to detect, as a proportion. 0.10 means 'detect a 10% relative lift over baseline' (so for a 5% baseline, you want to detect a move to 5.5%).

Output Schema

ParametersJSON Schema
NameRequiredDescription
alphaYesSignificance threshold used.
powerYesStatistical power used.
totalYesTotal visitors across both arms: 2 × per_arm.
per_armYesRequired visitors per arm (control AND variant each need this many).
target_rateYesTarget rate after the minimum detectable lift.
baseline_rateYesBaseline rate used in the calculation.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint true, so the description adds value by specifying the statistical assumptions: two-tailed alpha default of 0.05 and power default of 0.80. No contradiction with annotations.

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

Conciseness5/5

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

One well-structured sentence that front-loads the result and lists inputs efficiently; no filler.

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

Completeness5/5

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

For a read-only calculator with a rich schema and an output schema, the description provides all necessary context: purpose, key inputs, defaults, and statistical framing. No additional details are needed.

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

Parameters3/5

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

Schema description coverage is 100% and the description essentially recounts each parameter's meaning from the schema (baseline rate, relative lift, alpha, power). The description adds no parameter-level detail beyond the schema, so a baseline of 3 is warranted.

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 the tool computes the required sample size per arm for a two-proportion A/B test, naming all key inputs. This specific verb+resource clearly differentiates it from sibling calculators.

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 establishes clear context: it is for two-proportion A/B test sample-size calculations, with default alpha and power. It does not explicitly name alternatives or when-not-to-use, but the intended use is unambiguous.

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

age-on-other-planetsA
Read-onlyIdempotent
Inspect

Given an age in Earth days, return the equivalent age in years on each of the eight planets plus Pluto. Years are sidereal orbital periods from the NASA Planetary Fact Sheet; Earth uses the Julian year (365.25 days) for calendar alignment.

ParametersJSON Schema
NameRequiredDescriptionDefault
ageEarthDaysYesAge in Earth days. A typical human lifespan is 0–40,000 days; the upper bound 50,000 covers any plausible age. Decimal days are allowed (e.g. 13189.5).

Output Schema

ParametersJSON Schema
NameRequiredDescription
planetsYesOne row per body, in order from the Sun: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
ageEarthDaysYesThe input, echoed back.
ageEarthYearsYesConvenience field: ageEarthDays / 365.25, the same as the Earth row's years value.
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive. The description adds specific calculation details—sidereal orbital periods from NASA and Julian year for Earth—which helps the agent understand the data source and calibration. This is valuable beyond annotations, so a 4.

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

Conciseness5/5

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

Two concise sentences deliver the core functionality and calculation basis without unnecessary words. Front-loaded with the operation.

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 a simple conversion, full schema coverage, a read-only annotation, and an output schema, the description suffices. It covers the essential context (source and Earth year definition) without needing to explain return values.

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

Parameters3/5

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

The input schema has 100% coverage for the single parameter, describing bounds and data type. The description reiterates that age is in Earth days but adds no new parameter-specific details. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool converts an Earth-day age to planetary years using a specific verb ('return') and resource (eight planets plus Pluto). It distinguishes from the sibling 'weight-on-other-planets' by focusing on age rather than weight.

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 implicitly defines the use case: converting an age in Earth days to planetary ages. It does not explicitly name alternatives or exclusions, but the input-output relationship is unambiguous, and among siblings only this tool handles age conversion. A score of 4 reflects clear context without explicit alternative guidance.

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

angle-converterA
Read-onlyIdempotent
Inspect

Convert between angle units: degree, radian, gradian, turn.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit.
valueYesAngle value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
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, covering the tool's safety profile. The description adds no further behavioral context such as return format, precision, or edge-case handling; it only restates the purpose, providing no additional transparency 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.

Conciseness5/5

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

The description is a single sentence that lists the action and supported units. Every word is informative, with no filler or repetition, and it is appropriately front-loaded.

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

Completeness5/5

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

The tool is a simple converter with complete schema documentation and an output schema. The description plus annotations and schema fully cover what an agent needs to invoke it correctly, so no additional context is required.

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 clear descriptions for value, from, and to, including enums for source and target units. The description adds no parameter-specific semantics, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool converts between angle units and enumerates the supported units (degree, radian, gradian, turn), which distinguishes it from sibling converters like length-converter or temperature-converter. The verb 'convert' and resource 'angle units' are specific and unambiguous.

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

Usage Guidelines4/5

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

The description implicitly defines when to use this tool by naming angle units as the conversion domain, making the context clear. It does not explicitly provide exclusions or alternatives, but given the sibling tool names, the intended use is obvious.

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

arctan-calculatorA
Read-onlyIdempotent
Inspect

Compute arctan(x) — the inverse tangent — in either degrees or radians. The result is the angle θ such that tan(θ) = x, with θ constrained to (-90°, 90°) / (-π/2, π/2). For two-argument arctan that resolves the full circle, use atan2 instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesThe number whose inverse tangent (arctan) you want. Any real number; the function is defined on (-∞, +∞) and returns a value in (-π/2, +π/2).
unitNoOutput unit. Defaults to 'degrees'. Use 'radians' for math/physics contexts; 'degrees' for geometry, navigation, and CAD.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds useful behavioral context by defining the principal value range (-90°, 90°) / (-π/2, π/2) and the inverse relationship tan(θ) = x, which explains what the result represents. It doesn't detail output formatting but is sufficient for a read-only calculator.

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

Conciseness5/5

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

The description is two tight sentences with no filler. It front-loads the core purpose, follows with the mathematical definition and range, and ends with a clear pointer to an alternative. Every sentence earns its place.

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

Completeness5/5

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

For a simple calculator tool with strong annotations and no output schema, the description sufficiently explains what the result is (an angle), the possible unit options, the principal value constraint, and the key alternative. No critical context is missing for an agent to correctly select and invoke the tool.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already fully describes both parameters, including domain and defaults. The description adds minimal new parameter meaning beyond what is in the schema (e.g., 'any real number' is already in the x description), so it does not elevate above the baseline.

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

Purpose5/5

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

The description states a specific verb ('Compute') and resource ('arctan(x)'), clearly identifies the mathematical function (inverse tangent), and notes the degrees/radians options. It also differentiates from two-argument arctan by explicitly naming atan2, which distinguishes it from related tools.

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

Usage Guidelines5/5

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

The description gives clear guidance on when to use this single-argument arctan tool versus atan2, including an explicit exclusion: 'For two-argument arctan that resolves the full circle, use atan2 instead.' This is a strong when-not/alternative statement.

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

area-converterA
Read-onlyIdempotent
Inspect

Convert between area units: square-meter, square-kilometer, square-foot, square-yard, acre, hectare, square-mile.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit.
valueYesArea value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which adequately cover the safety profile. The description adds the unit list but no additional behavioral context such as rounding, precision, or error handling, so it provides only baseline value.

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

Conciseness5/5

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

A single, focused sentence that front-loads the action and resource, followed by a concise enumeration of supported units. No wasted words or redundant information.

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

Completeness5/5

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

For a simple unit conversion tool, the description together with the rich schema and annotations provides all necessary context. The output schema exists to cover return values, so no further explanation is needed.

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

Parameters3/5

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

The input schema provides full descriptions for all three parameters (value, from, to) with 100% coverage. The tool description only repeats the unit list already present in the enum values, offering no additional parameter meaning beyond the schema.

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

Purpose5/5

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

The description clearly states a specific action ('Convert') on a specific resource ('area units') and enumerates all supported units. This distinguishes it from sibling converters for length, volume, etc.

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

Usage Guidelines4/5

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

The description gives clear context for when to use this tool—when an area conversion is needed—without explicitly stating alternatives. The sibling tool names make the alternative obvious, but no direct exclusion is mentioned, 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.

aspect-ratioA
Read-onlyIdempotent
Inspect

Compute the simplified aspect ratio of a width × height pair, plus the decimal ratio. Useful for image, video, screen, and design contexts.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYesWidth in any unit.
heightYesHeight in same unit as width.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gcdYesGreatest common divisor used to simplify.
simplifiedYesSimplified width and height.
ratio_stringYesSimplified ratio in 'W:H' form.
ratio_decimalYesDecimal width-to-height ratio.
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 covered. The description adds the behavioral detail that it computes both a simplified ratio and a decimal ratio, going beyond the static annotations. 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 two sentences long, front-loads the core function in the first sentence, and adds relevant usage context in the second. Every word earns its place with no redundancy or unnecessary detail.

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

Completeness5/5

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

For a simple calculator tool with an output schema (indicated by 'Has output schema: true'), the description fully covers purpose and usage context. Annotations and schema handle safety and parameter constraints, so nothing important 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%, with both width and height having clear descriptions (e.g., 'Width in any unit' and 'Height in same unit as width'). The description itself adds little beyond the schema, only referring to a 'pair,' which is already evident from the schema's required fields. This meets the baseline for high schema coverage.

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

Purpose5/5

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

The description uses a specific verb ('Compute') and resource ('width × height pair'), clearly distinguishing this tool from the many sibling calculator tools. It also specifies the two outputs (simplified ratio and decimal ratio), leaving no ambiguity about its purpose.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool ('image, video, screen, and design contexts') but does not explicitly mention when not to use it or name alternative tools. It lacks exclusions but is still useful for selecting the tool in relevant scenarios.

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

average-calculatorA
Read-onlyIdempotent
Inspect

Compute summary statistics for a list of numbers: count, sum, mean, median, min, max, and mode(s).

ParametersJSON Schema
NameRequiredDescriptionDefault
numbersYesArray of numbers to summarize.

Output Schema

ParametersJSON Schema
NameRequiredDescription
maxYesLargest value.
minYesSmallest value.
sumYesSum of all inputs.
meanYesArithmetic mean.
countYesHow many numbers were summarized.
modesYesMost frequently occurring values.
medianYesMiddle value (or average of two middle values for even-length lists).
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds value by specifying exactly which statistics are computed and noting the possibility of multiple modes with 'mode(s)', which is a useful behavioral nuance 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.

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the verb and resource, then enumerates the outputs without any redundant text. Every word earns its place.

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

Completeness5/5

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

For a simple single-parameter calculator with a full schema description and an output schema present, the description is complete enough. It covers all computed statistics, and schema constraints (minItems=1) handle edge cases.

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

Parameters3/5

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

The input schema fully describes the only parameter ('numbers') with a clear description and constraints. The tool description does not add additional parameter-specific semantics, so a baseline score of 3 is appropriate given 100% schema coverage.

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

Purpose5/5

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

The description uses a specific verb ('Compute') and names a clear resource ('summary statistics for a list of numbers') with an explicit list of statistics. This distinguishes it from sibling tools like geometric-mean and percentage-calculator.

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

Usage Guidelines3/5

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

The purpose is self-evident, but the description offers no explicit guidance on when to use this tool versus alternatives, nor any exclusions. Usage is only implied by the stated statistics.

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

base64A
Read-onlyIdempotent
Inspect

Encode plain text to base64 or decode base64 back to text. Use mode='encode' for plain→base64, mode='decode' for base64→plain. UTF-8 safe.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesencode: text → base64. decode: base64 → text.
inputYesInput string. Plain text for encode, base64 for decode.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesMode used, echoed back.
outputYesThe encoded or decoded result.
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 covered. The description adds useful behavioral context by specifying 'UTF-8 safe' and the exact role of each mode, going 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?

Two sentences, front-loaded with the core purpose, followed by mode usage and a safety note. Every word earns its place; no fluff or redundancy.

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

Completeness4/5

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

The tool is simple, an output schema exists for return values, and the description covers purpose, mode selection, and encoding safety. It doesn't mention error handling for invalid base64, but for a straightforward converter, the description is adequately 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 both parameters already documented in the input schema. The description reaffirms the mode semantics but adds little beyond the schema's own descriptions, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool encodes plain text to base64 and decodes base64 back to text, with a clear verb-resource relationship. It distinguishes from sibling tools by being the only base64 utility, and the mode parameter explicitly differentiates the two directions.

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

Usage Guidelines4/5

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

The description gives explicit operating instructions (use mode='encode' or 'decode'), which provides clear usage context. It doesn't explicitly mention alternatives or when not to use, but given the tool's unique purpose, the guidance is sufficient.

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

bitwise-operations-calculatorA
Read-onlyIdempotent
Inspect

Run a bitwise operation (AND, OR, XOR, NOT, <<, >>, >>>) on two BigInt operands and return the result in decimal, hex, binary, octal, plus the low-32-bit binary representation.

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesFirst integer as a string. Can be decimal ('255'), hex ('0xff' or 'ff'), binary ('0b1010' or '1010'), or octal ('0o17' or '17'). The `base` field tells the engine how to parse it.
bNoSecond integer as a string. Required for AND, OR, XOR, and the three shifts. Ignored for NOT (unary).
opYesOperation: and (&), or (|), xor (^), not (~), shl (<<), shr (>> arithmetic right shift), ushr (>>> logical right shift on the low 32 bits).
baseYesHow to parse a and b: dec, hex, bin, or oct.dec

Output Schema

ParametersJSON Schema
NameRequiredDescription
opYesThe operation that ran, echoed for display.
binYesResult in binary, prefixed with 0b. Negative values are signed (leading minus).
decYesResult as a decimal string.
hexYesResult in hexadecimal, prefixed with 0x. Negative values are signed (leading minus).
octYesResult in octal, prefixed with 0o. Negative values are signed (leading minus).
bits32YesLow 32 bits of the result as a binary string, MSB on the left. Used for the visual grid.
exceeds32YesTrue when the result does not fit in a signed 32-bit integer.
Behavior4/5

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

Annotations already disclose read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond that: it explains the output includes decimal, hex, binary, octal, and a low-32-bit binary representation, and that operands are BigInts. No contradictions with annotations.

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

Conciseness5/5

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

A single, front-loaded sentence that lists operations and output formats without redundancy. Every piece of information earns its place, and the structure makes the core purpose immediately clear.

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

Completeness5/5

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

The tool is a straightforward calculator with a moderate parameter set and an output schema. The description covers the operational scope and output formats, while the schema supplies parameter details and the annotations cover safety. No significant missing context.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter well-documented (formats, required conditions, shift semantics). The description itself adds little parameter-level detail beyond restating that operands are BigInts, which is already implied by the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool runs bitwise operations (AND, OR, XOR, NOT, shifts) on two BigInt operands and returns results in multiple bases plus a low-32-bit binary representation. The verb+resource are specific, and the operation list distinguishes it from other calculator tools.

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

Usage Guidelines4/5

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

The description provides clear context for use: when a bitwise operation on arbitrary-precision integers is needed. It does not explicitly name alternatives or exclusions, but no sibling tool offers overlapping functionality, so the intended use is unambiguous.

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

board-foot-calculatorA
Read-onlyIdempotent
Inspect

Compute board feet for lumber. Formula: (thickness_in × width_in × length_in × qty) / 144. One board foot is a piece 1 in thick × 12 in wide × 12 in long.

ParametersJSON Schema
NameRequiredDescriptionDefault
qtyNoNumber of identical pieces. Defaults to 1.
width_inYesLumber width in inches. Nominal (a 1x6 = 6) or actual — be consistent across the order.
length_inYesLumber length in inches. Multiply feet by 12 (an 8 ft board = 96).
thickness_inYesLumber thickness in inches. Surfaced 1x stock is 0.75; 5/4 stock is 1; 8/4 is 2.
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, covering the safety profile. The description adds the calculation formula and the definition of a board foot, which meaningfully explains behavior beyond annotations. It does not detail output rounding, but for a simple calculator this is minor.

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 exactly two sentences with no filler. The first states the purpose, the second provides the formula and unit definition. Every word serves a purpose.

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 straightforward calculator with fully documented parameters and comprehensive annotations, this description is complete. It provides the formula, definition, and context. The lack of an output schema is acceptable since the computed result is self-explanatory.

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

Parameters4/5

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

Input schema has 100% parameter description coverage, so the baseline is 3. The description adds value by tying parameters together in the formula and defining a board foot, reinforcing the role of thickness, width, length, and qty. This elevates it above the baseline.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Compute board feet for lumber.' It immediately states the tool's purpose and is clearly distinct from sibling calculators like area or length converters. The inclusion of the formula further cements the purpose.

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

Usage Guidelines4/5

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

The description provides clear context that this tool is for lumber board foot calculations. While it does not explicitly mention alternatives, the specialized nature makes the intended use evident. Sibling tools do not overlap with this function, so no exclusions are needed.

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

box-shadow-generatorA
Read-onlyIdempotent
Inspect

Build a CSS box-shadow declaration from one or more shadow layers. Each layer has X/Y offset, blur, spread, color (hex or rgba), and an inset flag. Output is a copy-ready CSS string.

ParametersJSON Schema
NameRequiredDescriptionDefault
layersYesOne or more shadow layers. The first layer is rendered on top in CSS.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cssYesFull CSS declaration ready to paste, e.g. "box-shadow: 0px 4px 12px 0px rgba(0,0,0,0.1);"
valueYesThe box-shadow value only (no property name, no semicolon), suitable for inline-style use.
layerCountYesNumber of stacked shadow layers in the output.
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive hints. The description adds the 'copy-ready CSS string' output trait and explains the layer structure, which provides useful behavioral context beyond the annotations. No contradiction with annotations.

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

Conciseness5/5

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

The description is two sentences with front-loaded purpose, then parameter details, then output format. Every word earns its place; there is zero waste and no redundancy with the schema.

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 only one required parameter, a detailed schema, an output schema present, and annotations providing the safety profile, the description is fully sufficient. The output format is explicitly stated, so an agent can correctly invoke the tool without additional context.

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

Parameters3/5

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

The schema covers 100% of parameters with detailed descriptions for each field (offset, blur, spread, color, inset). The description only lists the field names without adding new meaning, so the baseline score of 3 is appropriate as the schema already provides full 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 uses a specific verb ('Build') and names the exact resource ('CSS box-shadow declaration'), clearly distinguishing it from sibling tools like color-converter or hex-to-rgb. It also specifies the scope ('one or more shadow layers'), leaving no ambiguity about its function.

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

Usage Guidelines4/5

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

The description clearly implies the use case (generating box-shadow CSS from layers), which is obvious from the context. However, it does not explicitly state when not to use this tool or name alternative tools. Since no sibling tool overlaps, this is acceptable but lacks explicit exclusion guidance.

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

burn-rate-calculatorA
Read-onlyIdempotent
Inspect

Compute a startup's gross burn, net burn, and runway from starting cash, ending cash, the period in months, and optional monthly revenue. Returns a health label benchmarked to standard SaaS funding-stage runway expectations.

ParametersJSON Schema
NameRequiredDescriptionDefault
ending_cashYesCash on hand at the end of the period, in dollars. If higher than starting_cash, the company is cash-positive and runway is effectively infinite.
period_monthsYesLength of the measurement window in months (default 1). Use 1 for last month, 3 for a quarter, 12 for the trailing year.
starting_cashYesCash on hand at the start of the period, in dollars. Use the bank balance plus any short-term equivalents.
monthly_revenueNoOptional monthly revenue, in dollars. When provided, the engine separates gross burn (operating expense) from net burn (cash decline after revenue). Omit if you only want to measure raw cash decline.

Output Schema

ParametersJSON Schema
NameRequiredDescription
healthYesCoarse health label benchmarked to SaaS funding stages: 'danger' (<6mo), 'tight' (6-12mo), 'healthy_seed' (12-18mo), 'healthy_series_a' (18-24mo), 'healthy_series_b_plus' (24+mo), 'cash_positive' (revenue ≥ expenses).
net_burnYesMonthly net cash decline in dollars. Negative when the company gained cash during the period.
gross_burnYesMonthly gross operating expense in dollars (net_burn + monthly_revenue). Equals net_burn when revenue is 0 or unspecified.
runway_monthsYesMonths of runway at the current net burn rate. null when net_burn ≤ 0 (cash is flat or growing — runway is effectively infinite).
monthly_revenueYesEchoed revenue input, 0 when unspecified.
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 and side-effect profile is established. The description adds behavioral context beyond these annotations by specifying the outputs (gross burn, net burn, runway) and the unique 'health label' benchmarked to SaaS funding-stage expectations. It does not contradict any annotation.

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

Conciseness5/5

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

The description is two sentences with no filler. The first sentence front-loads the core purpose and inputs, while the second adds the unique health-label output. Every word earns its place, making it highly concise and well-structured.

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?

The tool is a straightforward calculator with four simple numeric parameters, all fully documented in the schema. Annotations provide safety context, and an output schema exists (as stated in context signals), so the description need not explain return values. The description adds the health-label benchmark, ensuring complete context for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100% with each parameter already explained in detail (e.g., starting_cash: 'Cash on hand at the start of the period, in dollars. Use the bank balance plus any short-term equivalents.'). The description adds no additional parameter-level meaning, but this is acceptable because the schema carries the full burden. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Compute a startup's gross burn, net burn, and runway from starting cash, ending cash, the period in months, and optional monthly revenue.' This includes a specific verb ('Compute'), a resource ('startup's gross burn, net burn, and runway'), and enumerates the inputs, which distinguishes it from all sibling calculator tools. The additional mention of a 'health label benchmarked to standard SaaS funding-stage runway expectations' further differentiates 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 implies when to use the tool by listing the required parameters (starting cash, ending cash, period months) and optional monthly revenue, giving the agent clear contextual cues about the data needed. However, it does not explicitly mention alternatives or when not to use it. The schema provides additional usage guidance for the period_months parameter (e.g., 'Use 1 for last month, 3 for a quarter, 12 for the trailing year').

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

case-converterA
Read-onlyIdempotent
Inspect

Change the case of text: UPPERCASE, lowercase, Title Case, or Sentence case.

ParametersJSON Schema
NameRequiredDescriptionDefault
caseYesTarget case. upper=ALL CAPS, lower=all lower, title=Title Case Each Word, sentence=First letter only.
textYesText to transform.

Output Schema

ParametersJSON Schema
NameRequiredDescription
caseYesCase used, echoed back.
outputYesTransformed text.
Behavior3/5

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

Annotations already declare this as read-only, non-destructive, and idempotent, so the bar is lower. The description simply restates the operation without adding behavior details such as edge-case handling or output confirmation, though none are necessary given the 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?

The description is two short clauses, front-loading the primary action and listing the four case formats. No filler words.

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

Completeness5/5

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

For a simple 2-parameter text transformation with full schema coverage, an output schema, and annotations indicating safety, the description plus structured data provide sufficient context. No major 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 descriptions cover both parameters fully (100% coverage), including the enum meanings for case. The description repeats the case options but adds no new semantic information beyond the schema.

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

Purpose5/5

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

The description uses a specific verb 'change' and identifies the resource 'case of text,' listing four specific case types. This clearly distinguishes it from sibling text tools like reverse-text or dedup-lines.

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 guidance or alternatives are mentioned. The intended usage is implied by the tool's name and purpose, but there is no discussion of when to choose this over other text manipulation tools.

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

character-counterA
Read-onlyIdempotent
Inspect

Count characters in text, with and without spaces. Returns separate counts so you can answer questions like 'fits in a tweet (280 chars)?' or 'fits in an SMS (160 chars)?' without guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to analyze. Capped at 60,000 characters.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fits_smsYesTrue if 160 characters or fewer.
charactersYesTotal characters.
fits_tweetYesTrue if 280 characters or fewer.
characters_no_spacesYesCharacters excluding ASCII whitespace.
characters_no_whitespaceYesCharacters excluding all Unicode whitespace.
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, covering safety. The description adds valuable behavioral context by stating it returns separate counts and highlights the 'without guessing' aspect, which informs the agent about the tool's output style and reliability.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main action and results, followed by concrete, useful examples. Every word earns its place without unnecessary filler or repetition of schema details.

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

Completeness5/5

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

For a simple single-parameter tool with strong annotations and an output schema, the description fully covers purpose, behavior, and use cases. It provides enough context for an agent to select and invoke this tool correctly without ambiguity.

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

Parameters3/5

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

The input schema is fully self-descriptive with 100% coverage: the single parameter 'text' is documented with its type and maxLength. The description adds no additional parameter-level detail beyond what the schema already provides, 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: 'Count characters in text, with and without spaces.' It clearly distinguishes itself from sibling tools like word-counter and vowel-counter by emphasizing the two distinct outputs (with/without spaces) and the use case for character-limit checks.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool, such as checking if text fits in a tweet (280 chars) or SMS (160 chars). It does not explicitly mention when not to use it or name alternatives, but the examples make the intended usage highly apparent.

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

cidr-calculatorA
Read-onlyIdempotent
Inspect

Parse an IPv4 CIDR block (or an IP + dotted-decimal mask) and return network, broadcast, first/last usable host, total + usable IP counts, subnet/wildcard masks, the mask in binary, and the legacy IPv4 class.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNoDotted-decimal IPv4 address, e.g. '192.168.1.10'. Used with `mask` when CIDR notation isn't provided.
cidrNoIPv4 CIDR notation, e.g. '192.168.1.0/24'. Provide this OR (ip + mask). Prefix length must be 0-32.
maskNoDotted-decimal subnet mask, e.g. '255.255.255.0'. Must be a contiguous mask (all 1s then all 0s). Used with `ip` when CIDR notation isn't provided.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cidrYesCanonical CIDR notation, e.g. '192.168.1.0/24'.
prefixYesPrefix length, 0-32.
ipClassYesLegacy IPv4 class derived from the first octet (A/B/C/D/E).
networkYesNetwork address (first IP in the block).
hostBitsYesNumber of host bits (32 - prefix).
ipBinaryYesInput IP as 32 bits in dotted-octet binary.
totalIpsYesTotal IP addresses in the block (2^(32 - prefix)).
broadcastYesBroadcast address (last IP in the block); same as network for /32.
usableIpsYesUsable host addresses (totalIps - 2, but 2 for /31 and 1 for /32).
lastUsableYesLast usable host address. Equals network for /31 and /32.
maskBinaryYesSubnet mask as 32 bits split into 4 dotted octets, e.g. '11111111.11111111.11111111.00000000'.
subnetMaskYesSubnet mask in dotted-decimal, e.g. '255.255.255.0'.
firstUsableYesFirst usable host address. Equals network for /31 and /32.
wildcardMaskYesWildcard mask in dotted-decimal (bitwise NOT of subnet mask).
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, covering the safety profile. The description adds the input mode flexibility and the full list of computed values, but it does not discuss error behavior or edge cases beyond what schema param descriptions already cover. This is slightly above baseline but not rich.

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

Conciseness5/5

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

One well-structured sentence that front-loads the action and input, then enumerates the outputs. 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?

The tool is simple and stateless; annotations declare it read-only, and an output schema exists to document return values. The description covers the dual input modes and the scope of calculations. It is sufficiently complete for this calculator, though it doesn't explicitly restate validation rules that are already in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema documents all three parameters. The tool description clarifies the relationship between parameters (cidr OR ip+mask) and enumerates the output fields, adding some semantic context but not significantly beyond the schema.

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

Purpose5/5

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

The description uses the specific verb 'Parse' and names the resource (IPv4 CIDR block or IP + dotted-decimal mask), then lists the computed outputs. It clearly distinguishes this from sibling calculators, which cover unrelated domains.

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 specifies the two accepted input forms (CIDR or IP+mask) and implicitly states when to use the tool—whenever network calculations on IPv4 blocks are needed. No alternative tool exists among siblings, so no explicit exclusions are needed. Clarity is high, but it stops short of giving explicit when-not guidance.

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

coffee-habit-cost-calculatorA
Read-onlyIdempotent
Inspect

Compare the total nominal cost of a recurring coffee habit (drink price × times per week × years) against what the same weekly amount would have grown to if invested at a given annual return. Returns total spent, invested future value, and the opportunity-cost gap. The goal is to make compounding visible — not to moralize about coffee.

ParametersJSON Schema
NameRequiredDescriptionDefault
drinkYesDrink preset. 'latte' (~$5.75), 'cappuccino' (~$5.25), 'drip-coffee' (~$3.25), 'cold-brew' (~$5.50), or 'custom' to provide custom_price.
yearsYesHorizon in years over which the habit continues. Decimals allowed (e.g. 30 for a working career, 10 for a decade).
custom_priceNoRequired when drink='custom'. Price per drink in dollars (e.g. 4.50). Ignored for presets.
times_per_weekYesHow many drinks per week. Fractional is allowed (e.g. 5 weekdays, or 2.5 for an every-other-day habit).
annual_return_percentYesExpected nominal annual return on the alternative investment, as a percentage (e.g. 7 for 7%). 7% real or 10% nominal are common long-term US stock-market assumptions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
drink_priceYesResolved price per drink (preset or custom).
total_spentYesTotal nominal dollars spent on coffee over the horizon.
total_weeksYesNumber of weekly contributions / drinks (years × 52, rounded to integer).
annual_spendYesweekly_spend × 52.
weekly_spendYesdrink_price × times_per_week.
invested_valueYesFuture value of investing the same weekly amount at annual_return_percent over the horizon (end-of-week contributions).
opportunity_costYesinvested_value − total_spent. Positive when the investment outgrows the cash spent (typical with positive return).
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description adds complementary detail: it is a pure calculation returning three specific values (total spent, invested future value, opportunity-cost gap). The 'not to moralize' note clarifies tone, but no mention of compounding frequency or nominal/real assumptions, though these are not required given the annotations.

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

Conciseness5/5

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

Three sentences, each earning its place: first defines the comparison, second lists outputs, third gives intent. No redundant phrasing or restating of the tool name.

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 an output schema present and annotations covering safety, the description fully covers purpose, calculation logic, and return contents. The tool is simple enough that no further detail about return structure or side effects is needed; nothing 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 description coverage is 100%, so the schema already documents all five parameters. The description adds value by giving the calculation formula ('drink price × times per week × years') and clarifying that the alternative investment is 'at a given annual return,' which maps directly to annual_return_percent without repeating the schema.

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

Purpose5/5

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

The description clearly states a specific comparative verb ('Compare') and resource ('total nominal cost of a recurring coffee habit' vs. invested value), making the tool's purpose unmistakable. It also distinguishes itself from the sibling tool coffee-ratio-calculator by focusing on opportunity cost rather than brewing ratios.

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

Usage Guidelines4/5

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

The description implies when to use it (whenever the user wants to see the opportunity cost of coffee spending vs. investing) and adds context ('make compounding visible, not to moralize'). It does not explicitly list alternatives or exclusions, but the scope is clear enough for an AI to select it among sibling calculator tools.

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

coffee-ratio-calculatorA
Read-onlyIdempotent
Inspect

Compute the coffee-to-water ratio for popular brew methods (pour-over, French press, AeroPress, cold brew, espresso). Pick a method, enter coffee grams OR water ml, get the other variable plus recommended grind and brew time.

ParametersJSON Schema
NameRequiredDescriptionDefault
ratioNoOverride the default ratio for the chosen brew method. The number is N in '1:N' — grams of water per gram of coffee. Typical range 1.5 (espresso ristretto) to 20 (light pour-over). Omit to use the method's default.
coffee_gNoCoffee grams. Required when solve_for='water'. Must be > 0.
water_mlNoWater in millilitres. Required when solve_for='coffee'. Must be > 0. Water density is taken as 1 g/ml.
solve_forYesWhich variable to compute. 'water' takes coffee grams as input and returns water ml. 'coffee' takes water ml as input and returns coffee grams.
brew_methodYesThe brew method. Each preset chooses a sensible default coffee-to-water ratio (pour_over 1:16, french_press 1:15, aeropress 1:14, cold_brew 1:8 concentrate, espresso 1:2).

Output Schema

ParametersJSON Schema
NameRequiredDescription
grindYesRecommended grind size for this brew method.
notesYesShort note about the method.
ratioYesCoffee-to-water ratio used (the 'N' in 1:N).
coffee_gYesCoffee grams (rounded to 0.1 g).
water_mlYesWater in millilitres (rounded to 1 ml).
water_ozYesWater in US fluid ounces (rounded to 0.1 oz).
brew_timeYesBrew-time guideline for this brew method.
brew_methodYesBrew method id.
ratio_labelYesRatio formatted as a 1:N string.
brew_method_labelYesDisplay label for the brew method.
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds that the tool returns recommended grind and brew time beyond the computed variable, and clarifies the OR relationship between coffee and water inputs. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with the action verb and resource, listing methods and succinctly describing input/output. 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?

With a well-documented schema, an output schema present, and low complexity, the description covers the primary workflow and additional outputs. It omits mention of ratio override, but that is already in the schema, so the description is sufficiently 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% with detailed descriptions for all five parameters. The description summarizes the core relationship ('enter coffee grams OR water ml') but adds little beyond what the schema already specifies, 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 uses the specific verb 'Compute' and targets a clear resource: coffee-to-water ratio for popular brew methods. It lists the methods and clarifies it returns the complementary variable plus grind and brew time, distinguishing it from sibling tools like coffee-habit-cost-calculator and recipe-scaler.

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

Usage Guidelines4/5

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

It provides clear context: use this tool to compute the ratio for a chosen brew method, entering either coffee grams or water ml. It implies the use case but does not explicitly name alternatives or exclude cases, 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.

color-converterA
Read-onlyIdempotent
Inspect

Convert a color between hex, RGB, HSL, and HSV representations. Auto-detects the input format from the string syntax.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesThe input color string. Accepts: #RGB, #RRGGBB, #RGBA, #RRGGBBAA, rgb(r,g,b), rgba(r,g,b,a), hsl(h,s%,l%), hsla(h,s%,l%,a). Spaces optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexYes6-digit hex color with leading #.
hslYesHSL representation.
hsvYesHSV representation.
rgbYesRGB representation.
rgbaYesRGBA representation.
hex_with_alphaYes8-digit hex with alpha if alpha < 1, else same as hex.
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, establishing safety. The description adds the useful behavioral trait of auto-detecting the input format, but does not disclose output shape, invalid input handling, or edge cases. It adds some value beyond annotations but remains minimal.

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

Conciseness5/5

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

The description is two concise, information-dense sentences. The first states the core purpose, the second explains a key behavior (auto-detection). No filler or redundancy.

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

Completeness4/5

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

Given the strong annotations and complete schema, the description is largely sufficient. The only minor gap is ambiguity about whether the output returns all representations or a specific one, but the output schema (not shown) likely resolves this. The description could also mention invalid input behavior, but it is a simple converter.

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 tool description does not add parameter information, but the schema's parameter description thoroughly lists accepted input formats. No additional compensation is needed.

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

Purpose5/5

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

The description states a specific action ('Convert') on a clear resource (color) and enumerates the supported representations (hex, RGB, HSL, HSV). It distinguishes itself from the sibling 'hex-to-rgb' tool by covering more formats, and the auto-detection note reinforces its purpose.

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

Usage Guidelines3/5

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

The description implies when to use it (when color conversion across these formats is needed) but does not explicitly mention alternatives or when not to use it. It does not reference the overlapping sibling tool 'hex-to-rgb', leaving the choice to the agent's inference.

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

cron-expression-generatorA
Read-onlyIdempotent
Inspect

Parse a 5-field cron expression, describe it in plain English, and compute the next N fire times. Input the standard 'minute hour day-of-month month day-of-week' form (e.g. '0 9 * * 1-5' for weekdays at 9am).

ParametersJSON Schema
NameRequiredDescriptionDefault
fromIsoNoReference time in ISO 8601 (e.g. '2026-05-14T10:00:00Z'). Defaults to current time. Used for deterministic 'next run' computation.
nextCountNoHow many upcoming fire times to compute. Default 5. Use 0 to skip.
expressionYesA 5-field cron expression — minute hour day-of-month month day-of-week. Examples: '0 9 * * 1-5' for weekdays at 9am, '*/15 * * * *' every 15 minutes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYesTrue when the expression parsed cleanly.
nextRunsYesISO 8601 timestamps (UTC) of the next N fire times.
expressionYesThe normalized cron expression, echoed back.
descriptionYesPlain-English description of when the expression fires.
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, lowering the burden. The description adds value by explaining the tool's non-mutating actions (parse, describe, compute) and specifying the 5-field constraint. No contradictions with annotations exist.

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

Conciseness5/5

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

The description is only two sentences and is entirely front-loaded with the core actions. It includes a relevant example without any redundant words or filler, making every sentence earn its place.

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

Completeness5/5

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

Given the rich input schema, annotations, and the presence of an output schema, the description is complete. It covers the input format, the computation behavior, and an example, leaving no significant gaps for an agent to understand and invoke the tool correctly.

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

Parameters3/5

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

The schema covers all three parameters with detailed descriptions (100% coverage), so the baseline is 3. The description's example adds a concrete illustration but does not provide additional semantic depth beyond what the schema already states for fromIso and nextCount.

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

Purpose5/5

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

The description clearly states the tool's function with specific verbs: 'Parse a 5-field cron expression, describe it in plain English, and compute the next N fire times.' It precisely identifies the resource (cron expression) and the actions (parse, describe, compute), making it distinct from sibling tools like calculators and converters.

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

Usage Guidelines4/5

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

The description gives clear context by specifying the exact input format and an example: "Input the standard 'minute hour day-of-month month day-of-week' form (e.g. '0 9 * * 1-5' for weekdays at 9am)." It does not explicitly mention when not to use the tool or name alternatives, but no close siblings exist, so the guidance is sufficient.

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

data-storage-converterA
Read-onlyIdempotent
Inspect

Convert between digital storage units: bit, byte, kilobyte (1024 B), megabyte, gigabyte, terabyte. Uses binary (1024-based) sizing.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit. Uses binary (1024-based) sizing for byte→kilobyte etc.
valueYesStorage value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the key behavioral trait of using binary (1024-based) sizing, but this is also repeated in the parameter schema description for 'from'. No contradictions exist, and no additional operational details are needed given the simple nature of the tool.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the verb and resource, and includes the essential detail about binary sizing. Every word earns its place with no waste, making it extremely concise and well-structured.

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

Completeness5/5

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

Given the simplicity of the converter, the tool description combined with the rich input schema (with enums and descriptions) and output schema provides complete context. The description clarifies the unit set and conversion base, which is sufficient for an agent to use the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (value, from, to) having a clear description. The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly identifies the tool as a storage unit converter with the specific verb 'Convert', names the exact units (bit, byte, kilobyte, etc.), and specifies the binary (1024-based) sizing. This distinguishes it from other converter siblings like length-converter or temperature-converter.

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 states the conversion domain (digital storage units) and notes the binary sizing, giving clear context for when to use the tool. It doesn't explicitly mention alternatives or exclusions, but the specificity of the units makes the usage obvious among sibling converter tools.

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

days-betweenA
Read-onlyIdempotent
Inspect

Calculate the number of days between two ISO 8601 dates. Returns days, weeks, months, and years (decimal). Inclusive count = absolute |end - start|.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnd date in ISO 8601 (YYYY-MM-DD or full ISO timestamp).
startYesStart date in ISO 8601 (YYYY-MM-DD or full ISO timestamp).

Output Schema

ParametersJSON Schema
NameRequiredDescription
daysYesNumber of days between the dates (absolute).
weeksYesEquivalent number of weeks.
yearsYesApproximate number of years (assuming 365.25 days/year).
monthsYesApproximate number of months (assuming 30.4375 days/month).
directionYesWhether end comes after or before start.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the tool is known to be safe and non-mutating. The description adds valuable behavior details: the inclusive count formula using absolute difference and the multi-unit return values. This goes beyond annotations and clarifies the calculation method.

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

Conciseness5/5

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

The description is three short sentences, front-loaded with the primary purpose, then giving essential behavioral details. Every sentence earns its place, with no repetition or wordiness.

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

Completeness5/5

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

For a simple read-only calculator with a schema covering both parameters and an output schema present, the description provides sufficient context: purpose, return units, and calculation logic. The annotations cover safety, so no additional behavioral caveats are needed.

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

Parameters3/5

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

The input schema already provides full descriptions for both 'start' and 'end' parameters (ISO 8601 format), so schema coverage is 100%. The description does not add significant parameter-level meaning, though the absolute-difference formula implicitly states that parameter order is irrelevant.

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

Purpose5/5

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

The description clearly states the tool calculates the number of days between two ISO 8601 dates, with a specific verb and resource. It also notes the returned units (days, weeks, months, years), distinguishing it from other date-related calculators in the sibling list like 'easter-date-calculator' or 'age-on-other-planets'.

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 (when you need the time span between two dates) but does not explicitly state alternatives or exclusions. There is no mention of when not to use it or which sibling tool might be more appropriate in other scenarios.

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

dedup-linesA
Read-onlyIdempotent
Inspect

Remove duplicate lines from a text block. Optionally case-insensitive. Order is preserved (not sorted).

ParametersJSON Schema
NameRequiredDescriptionDefault
keepNoWhich occurrence to keep. Default first.
textYesMulti-line text.
case_insensitiveNoIf true, lines that differ only in case are considered duplicates. Default false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
keptYesNumber of lines kept.
outputYesDeduplicated text with newline-joined lines.
removedYesNumber of duplicate lines removed.
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations, such as order preservation and optional case-insensitivity. It does not contradict annotations and provides enough transparency for a simple utility.

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

Conciseness5/5

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

The description is two concise sentences with no wasted words. It front-loads the primary action and immediately covers the most important nuance (order preservation). Every sentence earns its place.

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

Completeness5/5

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

Given the tool's low complexity, rich schema, and presence of an output schema, the description adequately covers the main behavior, key option (case-insensitive), and behavioral guarantee (order preservation). It is complete for an agent to select and invoke this tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, with all three parameters (text, keep, case_insensitive) having descriptions. The description adds no substantial parameter information beyond what the schema already provides, 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 ('Remove') and resource ('duplicate lines from a text block'), clearly stating the tool's function. It also adds a key differentiator ('Order is preserved (not sorted)') that distinguishes it from sibling tools like sort-lines.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (to deduplicate lines) and implicitly excludes sorting with the parenthetical '(not sorted)'. However, it does not explicitly name alternative tools or state when not to use it, lacking explicit exclusionary guidance.

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

discount-calculatorA
Read-onlyIdempotent
Inspect

Apply a percentage discount to a price. Returns sale price, amount saved, and the discount percentage echoed back.

ParametersJSON Schema
NameRequiredDescriptionDefault
originalYesOriginal price.
discount_percentYesDiscount percentage (e.g. 25 for 25%).

Output Schema

ParametersJSON Schema
NameRequiredDescription
originalYesOriginal price, echoed back.
you_saveYesAmount saved.
sale_priceYesPrice after discount.
discount_percentYesDiscount percent, echoed back.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds no behavioral context beyond echoing the discount percentage in the return, which is not critical since an output schema exists. 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.

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action and output, with no wasted words.

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

Completeness5/5

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

For a simple calculator with well-documented params and an output schema, the description is complete enough for an agent to select and invoke correctly; no further context like rounding rules is necessary.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters, so the description does not need to add parameter details; it doesn't, and the schema already explains 'Original price' and 'Discount percentage'.

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

Purpose5/5

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

The description clearly states the tool applies a percentage discount and returns the sale price, amount saved, and the discount percentage, which is specific and distinguishes it from sibling calculators like percentage-calculator.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as percentage-calculator or tip-calculator, and lacks exclusions or prerequisites.

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

dollar-cost-averaging-calculatorA
Read-onlyIdempotent
Inspect

Project the final value of a dollar-cost averaging (DCA) plan — equal contributions at regular intervals — and compare against lump-summing the same total at time 0. Returns final value, total invested, gains, equivalent CAGR, optional inflation-adjusted figures, and the lump-sum head-to-head.

ParametersJSON Schema
NameRequiredDescriptionDefault
frequencyYesContribution cadence. 'weekly' = 52/yr, 'biweekly' = 26/yr, 'monthly' = 12/yr.
period_countYesTotal number of contributions (e.g. 120 for 10 years of monthly contributions).
inflation_percentNoOptional annual inflation rate (e.g. 2.5). When provided, the engine also returns inflation-adjusted (today's dollars) final value and gains.
annual_return_percentYesExpected nominal annual return as a percentage (e.g. 8 for 8%). Negative values allowed for stress-testing; the periodic rate must remain > -100%.
contribution_per_periodYesAmount invested at the end of each period (e.g. 500 for $500 per month).

Output Schema

ParametersJSON Schema
NameRequiredDescription
final_valueYesFuture value of the DCA stream (nominal).
total_gainsYesfinal_value − total_invested.
total_yearsYesperiod_count / periods_per_year, for display.
total_investedYesSum of all contributions.
periods_per_yearYesEchoed from frequency.
real_final_valueYesInflation-adjusted final_value in today's dollars (null when inflation not provided).
real_total_gainsYesInflation-adjusted gains in today's dollars (null when inflation not provided).
lump_sum_advantageYeslump_sum_final_value − final_value. Positive when lump-sum beats DCA (typical with positive returns).
lump_sum_final_valueYesFuture value if the same total_invested were invested entirely at period 0.
equivalent_cagr_percentYesMoney-weighted annual return that reproduces final_value from the contribution stream.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the bar is lower. The description adds useful behavioral context by listing return values (final value, gains, CAGR, inflation-adjusted figures) and the lump-sum head-to-head, without contradicting annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary purpose and followed by a concise list of outputs. 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?

The description, combined with a complete schema and output schema, gives enough context for a user to understand the tool's function and result. It could mention assumptions like constant return rates, but for a calculator this is sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds minimal parameter nuance beyond the schema—only noting that inflation-adjusted figures are optional. It does not need to compensate for missing schema info.

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

Purpose5/5

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

The description clearly states the tool projects the final value of a DCA plan and compares it to lump-summing, naming specific outputs. This distinguishes it from sibling calculators by explicitly mentioning DCA and the lump-sum comparison.

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

Usage Guidelines4/5

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

The description provides clear context: it's for comparing DCA vs lump-sum investment. However, it does not explicitly mention when not to use it or name alternative tools, so it misses the full '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.

dummy-data-generatorA
Read-onlyIdempotent
Inspect

Generate tabular test fixtures (JSON or CSV) from a chosen mix of fake fields. Each row is a consistent identity — first/last name match the email; state matches the ZIP prefix. Public-domain data tables; pure JS; deterministic when a seed is passed.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYesHow many rows to generate. Min 1, max 1000.
seedNoOptional integer seed for deterministic output. Same seed + same inputs = same rows. Omit for fresh randomness on each call.
fieldsYesWhich columns to include. Pick at least one. Order in the array is the output column order. Allowed: firstName, lastName, email, phone, address, city, state, zip, country, company, date, uuid, loremText, numberRange.
formatYesOutput format. 'json' returns an array of objects; 'csv' returns RFC-4180 CSV with a header row.
numberMaxNoUpper bound (inclusive) for the numberRange field. Default 1000.
numberMinNoLower bound (inclusive) for the numberRange field. Default 0.
loremWordsNoHow many words in each loremText field. Default 8.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesSerialized rows in the requested format (JSON string or CSV string).
rowsYesNumber of rows generated.
fieldsYesColumn names included, in output order.
formatYesFormat that was used to serialize.
Behavior4/5

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

Annotations already declare this as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by explaining the cross-field consistency rules and the deterministic-seed property, which are not captured in the 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.

Conciseness5/5

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

The description is two concise sentences that front-load the core purpose and then add valuable behavioral detail. No filler or redundant restatement of the tool name.

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 a 100% schema coverage and an output schema present, the description provides the right level of high-level context. It explains the tool's unique value (tabulated fake data with coherent identities) while leaving parameter details to 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?

Because the schema describes all seven parameters with full coverage, the baseline is 3. The description earns extra credit by clarifying how the field parameters interact (e.g., 'first/last name match the email; state matches the ZIP prefix'), giving semantic meaning beyond the individual parameter definitions.

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

Purpose5/5

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

The description opens with 'Generate tabular test fixtures (JSON or CSV) from a chosen mix of fake fields,' giving a specific verb, resource, and output formats. It further distinguishes itself from sibling generators (e.g., random-number, uuid-generator) by emphasizing row-level consistency and public-domain data tables.

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

Usage Guidelines4/5

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

The description clearly frames when to use the tool: for creating tabular test fixtures with realistic identity correlations (e.g., first/last name match email, state matches ZIP). It does not explicitly name alternatives or exclusions, but the context is concrete enough to guide selection among the sibling list.

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

easter-date-calculatorA
Read-onlyIdempotent
Inspect

Compute Western (Gregorian) Easter Sunday and Eastern Orthodox Easter for any year between 1583 and 4099, plus the related liturgical dates Ash Wednesday, Palm Sunday, Good Friday, and Pentecost. Uses the Meeus / Anonymous Gregorian algorithm.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesThe year to compute Easter for. Must be an integer between 1583 (first year of the Gregorian calendar) and 4099 (algorithm's documented range).

Output Schema

ParametersJSON Schema
NameRequiredDescription
yearYesThe input year, echoed back.
sameDateYesTrue when Western and Orthodox Easter fall on the same Sunday (happens roughly once every 4 years; e.g. 2025, 2028).
pentecostYesPentecost (Whitsunday) — Western Easter plus 49 days. Seven weeks after Easter.
goodFridayYesGood Friday — Western Easter minus 2 days. Commemorates the crucifixion.
palmSundayYesPalm Sunday — Western Easter minus 7 days. The Sunday before Easter.
ashWednesdayYesAsh Wednesday — Western Easter minus 46 days. Marks the start of Lent.
westernEasterYesWestern (Gregorian) Easter Sunday — used by Catholic, Protestant, and most Western Christian churches.
orthodoxEasterYesEastern Orthodox Easter Sunday (Pascha) — computed from the Julian calendar's paschal rule and rendered as a proleptic Gregorian date.
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. The description adds valuable context by listing the specific computed dates and naming the Meeus/Anonymous Gregorian algorithm, which helps agents understand the calculation behavior beyond the annotations. No contradiction with annotations.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the main verb 'compute', and conveys both the purpose and the method without any extraneous information.

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

Completeness5/5

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

For a single-parameter calculator with an output schema, the description is fully adequate. It specifies the input range, the exact computations performed, and the algorithm used, while the output schema handles return-value expectations. No missing context for an agent to select and invoke the tool.

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

Parameters3/5

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

The input schema provides full coverage of the 'year' parameter with a detailed description, minimum/maximum constraints, and additionalProperties=false. The description repeats the year range but adds no meaning beyond what the schema already states, so the baseline score of 3 applies.

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

Purpose5/5

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

The description uses the specific verb 'compute' and names the exact resources: Western (Gregorian) Easter Sunday, Eastern Orthodox Easter, and related liturgical dates (Ash Wednesday, Palm Sunday, Good Friday, Pentecost). It also specifies the year range and algorithm, making it clearly distinct from any sibling tool.

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

Usage Guidelines4/5

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

The description clearly states the valid year range (1583-4099) and the scope of what the tool calculates, giving a clear context for when to use it. It does not explicitly mention alternatives or exclusions, but no close sibling tool exists, so this is not a significant gap.

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

energy-converterA
Read-onlyIdempotent
Inspect

Convert between energy units: joule, kilojoule, calorie (thermochemical), kilocalorie, watt-hour, btu.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit.
valueYesEnergy value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
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. The description adds one useful clarification ('calorie (thermochemical)') but does not disclose behavioral details such as rounding, precision, or handling of edge cases. 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.

Conciseness5/5

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

A single, front-loaded sentence with a clear verb and all relevant unit names. No filler, repetition, or unnecessary detail.

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

Completeness5/5

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

For a simple, stateless converter with complete input schema coverage, an output schema, and safety annotations, the description fully covers the essential purpose and unit set. No additional prerequisite, environment, or behavioral context is needed.

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

Parameters4/5

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

Input schema already documents all three parameters with 100% coverage and enums for from/to. The description adds meaningful semantic nuance by specifying that 'calorie' is thermochemical, disambiguating it from other calorie definitions not captured 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?

Description states a specific action ('Convert between energy units') and enumerates the exact unit set (joule, kilojoule, calorie, kilocalorie, watt-hour, btu), making it clearly distinct from sibling converters for length, temperature, volume, etc.

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 its use for energy conversions but does not explicitly state when to choose it over alternatives or mention exclusions. There is no 'use this tool when...' guidance, so usage context is only inferred from the tool name and unit list.

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

fraction-simplifierA
Read-onlyIdempotent
Inspect

Simplify a fraction to lowest terms. Returns the simplified numerator/denominator, the decimal value, the gcd used, and the equivalent percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault
numeratorYesNumerator (integer).
denominatorYesDenominator (integer, non-zero).

Output Schema

ParametersJSON Schema
NameRequiredDescription
gcdYesGreatest common divisor used.
decimalYesDecimal value of the fraction.
percentageYesFraction expressed as a percentage.
simplifiedYesSimplified fraction.
Behavior4/5

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

The description discloses return values (simplified numerator/denominator, decimal value, gcd, percentage), going beyond the annotations which already indicate read-only and idempotent behavior. It does not mention edge cases, but the schema handles the denominator non-zero constraint.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and return values with no redundant information.

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

Completeness5/5

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

Given the simplicity of the tool, the rich annotations, and the presence of an output schema, the description is complete. It clearly states what the tool does and what it returns, with no critical 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 100% with descriptions for both parameters. The description adds some context by restating that numerator and denominator are the fraction parts, but does not provide additional syntax or format details beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Simplify') and resource ('a fraction'), and specifies the outputs. It distinguishes itself from sibling calculators by focusing specifically on fraction simplification.

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

Usage Guidelines3/5

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

The description implies usage (when you need to simplify a fraction) but provides no explicit exclusions or alternatives. No guidance is given for when not to use this tool or how it compares to related calculators like percentage-calculator.

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

geometric-meanA
Read-onlyIdempotent
Inspect

Compute the geometric mean (n-th root of the product) of a list of positive numbers. Also returns the arithmetic mean for comparison.

ParametersJSON Schema
NameRequiredDescriptionDefault
numbersYesArray of positive numbers. Negative or zero values invalidate the geometric mean.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesHow many numbers were summarized.
geometric_meanYesGeometric mean (n-th root of the product).
arithmetic_meanYesArithmetic mean, for comparison.
Behavior4/5

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

Annotations already mark the tool as read-only and idempotent, so the description correctly avoids restating those. It adds behavioral detail by defining the mathematical operation (n-th root of the product) and noting the additional return of the arithmetic mean, which is not visible 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.

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the core purpose and immediately follow with the key extra behavior. Every word earns its place, with no filler or redundant restatement of the title.

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

Completeness5/5

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

For a simple calculator with one well-documented parameter and an output schema available, the description covers the essential purpose, input domain, and extra output. It is fully complete for this tool's 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?

The schema already fully documents the single parameter, including type, constraints, and the invalidity of negative/zero values. The description only restates that it is a list of positive numbers, adding no new semantic detail, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description begins with a specific verb ('Compute') and explicit resource ('geometric mean'), immediately clarifying what the tool does. It also notes the inclusion of the arithmetic mean, distinguishing it from a pure geometric-mean-only tool and from sibling calculators.

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 states the input requirement ('list of positive numbers') and implies use when a geometric mean is needed. It does not explicitly contrast with siblings like average-calculator, but the added return of arithmetic mean provides context for when this tool might be preferred.

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

gitignore-generatorA
Read-onlyIdempotent
Inspect

Build a .gitignore file by picking technologies (languages, frameworks, editors, operating systems). Rules from each pick are merged, with duplicate rule lines dropped silently. Returns the file content ready to save.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdsYesTemplate identifiers to include. At least one is required. Known IDs: node, python, java, ruby, go, rust, php, cpp, csharp, react, vue, nextjs, astro, rails, django, spring, vscode, intellij, vim, emacs, sublime, macos, windows, linux.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesThe merged, deduplicated .gitignore file text, ready to save.
ruleCountYesNumber of unique rule lines in the output (comments + blank lines excluded).
templatesYesLabels of the templates that contributed, in order.
Behavior4/5

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

The description goes beyond the readOnly/idempotent annotations by disclosing that rules from each selection are merged and duplicate lines are dropped silently, and that the result is file content ready to save. This provides valuable behavioral context that could affect user expectations, though it does not delve into deeper edge cases.

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

Conciseness5/5

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

Two concise sentences: the first states the purpose and the second covers behavior and output. Every word earns its place, with no redundancy or fluff.

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

Completeness5/5

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

Given the presence of an output schema and detailed annotations, the tool description sufficiently covers the merging behavior, duplicate elimination, and output form. It is complete enough for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

The input schema already provides 100% coverage for the single parameter, including a list of known template IDs and the minItems requirement. The description only indirectly references 'picking technologies' and adds no additional semantics, 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 clearly states a specific verb ('Build') and a specific resource ('.gitignore file'), and explains the approach (picking technologies). This unambiguously distinguishes it from sibling generator tools like cookie-consent-generator or dummy-data-generator.

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

Usage Guidelines4/5

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

The description implies clear usage context: when you need a .gitignore file by selecting technologies, with rules merged and deduplicated. It does not explicitly mention alternatives or when not to use, but the tool's unique scope makes the intended use obvious.

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

heartbeats-since-birthA
Read-onlyIdempotent
Inspect

Estimate the total number of heartbeats a person has had since birth, given their date of birth and a reference 'now' timestamp. Uses an average resting heart rate of 80 bpm (American Heart Association adult midpoint) by default; the caller can override. Returns heartbeats, breaths, minutes alive, and days alive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nowMsYesThe reference 'now' instant, as Unix epoch milliseconds. The widget passes Date.now(); MCP callers can pin a value for deterministic output.
birthMsYesDate of birth as a Unix epoch in milliseconds (the value returned by Date.getTime()). Must be on or before nowMs.
restingBpmNoAverage resting heart rate in beats per minute. Defaults to 80, the midpoint of the adult resting range (60–100 bpm) per the American Heart Association.
breathsPerMinuteNoAverage breath rate per minute. Defaults to 16, the midpoint of the adult resting range (12–20) per the Mayo Clinic.

Output Schema

ParametersJSON Schema
NameRequiredDescription
breathsYesEstimated total breaths since birth.
daysAliveYesWhole days elapsed (minutes ÷ 1440, floored).
heartbeatsYesEstimated total heartbeats since birth.
restingBpmYesThe bpm value used for the calculation.
minutesAliveYesWhole minutes elapsed between birthMs and nowMs.
breathsPerMinuteYesThe breaths-per-minute value used for the calculation.
Behavior5/5

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

Annotations already mark the tool as readOnly and idempotent, but the description adds meaningful behavioral details: the default resting heart rate of 80 bpm, the ability to override it, and the specific output fields (heartbeats, breaths, minutes alive, days alive). This explains underlying assumptions without contradicting annotations.

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

Conciseness5/5

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

The description is three well-structured sentences: purpose, default assumption, and return values. Every sentence adds necessary information with no redundancy, and the main purpose is front-loaded.

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

Completeness5/5

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

For a simple stateless calculator, the description combined with the input schema and output schema provides complete context. It covers inputs, defaults, and returns, and edge cases like birthMs <= nowMs are handled in the schema. No critical information is missing.

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

Parameters3/5

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

The input schema provides 100% parameter description coverage, including defaults and constraints for birthMs, nowMs, restingBpm, and breathsPerMinute. The description only reiterates the 80 bpm default and override capability, adding no extra parameter-level semantics.

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

Purpose5/5

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

The description clearly states the tool's function: 'Estimate the total number of heartbeats a person has had since birth' with specific verb (estimate) and resource (heartbeats since birth). It also specifies inputs (DOB, now timestamp) and outputs, distinguishing it from sibling date calculators like days-between.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool (given birth date and reference timestamp), but does not explicitly mention exclusions or alternatives. Since no sibling tool offers heartbeat estimation, this level of guidance is sufficient.

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

hex-to-rgbA
Read-onlyIdempotent
Inspect

Convert a hex color (e.g. #ff8800) to RGB and RGBA channel values. Accepts 3-, 4-, 6-, and 8-digit hex with or without the leading #.

ParametersJSON Schema
NameRequiredDescriptionDefault
hexYesHex color string. Accepts #RGB, #RGBA, #RRGGBB, #RRGGBBAA, or the same forms without the leading #.

Output Schema

ParametersJSON Schema
NameRequiredDescription
aYesAlpha channel (0-1, defaults to 1 if not present in input).
bYesBlue channel (0-255).
gYesGreen channel (0-255).
rYesRed channel (0-255).
rgbYesCSS rgb() string.
rgbaYesCSS rgba() string.
hex_normalizedYesNormalized 6-digit hex string with leading #.
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral details about accepted hex formats and optional # prefix, which goes beyond the annotations and clarifies handling of different input shapes. 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 only two sentences, front-loads the core action, and provides a concrete example followed by accepted input variations. Every sentence earns its place with no redundant filler.

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

Completeness5/5

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

For a simple conversion tool with full parameter schema coverage and an output schema present, the description adequately specifies input constraints and output purpose. It supports the annotations and leaves no critical gap for a straightforward pure function.

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

Parameters3/5

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

The schema description of the hex parameter fully covers accepted formats (#RGB, #RGBA, #RRGGBB, #RRGGBBAA, with/without #). The tool description adds an example and reiterates the format set, but provides no additional semantic meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool converts hex colors to RGB and RGBA channel values, with a concrete example. It specifies accepted input formats (3-, 4-, 6-, and 8-digit hex with or without #), making it distinct from a broader color-converter sibling.

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

Usage Guidelines3/5

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

The description implies usage (when you have a hex color and need RGB/RGBA values) but does not directly compare against alternatives like color-converter. There is no explicit when-to-use or exclusion guidance, leaving the agent to infer the appropriate context.

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

http-status-code-lookupA
Read-onlyIdempotent
Inspect

Look up HTTP response status codes from RFC 9110 and the IANA registry. Search by code (404), category (4xx), or free-text (not found). Returns the canonical name, defining RFC, category, plain-English description, typical scenarios, and common mistakes.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query. Pass an HTTP status code as digits (e.g. '404'), a category shorthand ('4xx'), the status name ('not found'), or any text in the description / scenarios. Empty string returns all codes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYesMatching status entries in canonical order.
totalMatchesYesNumber of entries returned.
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 no contradiction. The description adds valuable context beyond annotations by naming the data source (RFC 9110/IANA) and detailing what the lookup returns (canonical name, scenarios, mistakes). No missing safety caveats are needed because the tool is read-only.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the primary purpose in the first sentence. It immediately states what the tool does, gives search examples, and lists return fields without any filler. Every sentence earns its place.

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

Completeness5/5

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

For a simple lookup tool with one parameter and an output schema, the description is complete. It covers purpose, search syntax, data source, and return content. No critical information is missing, and the output schema handles formal return-value definitions.

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

Parameters3/5

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

The input schema has 100% coverage with a very detailed description of the 'query' parameter, including example values and behavior. The tool description's search examples ('404', '4xx', 'not found') merely echo the schema's parameter description, adding no extra meaning beyond what the schema already provides. Baseline of 3 is appropriate due to high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's function: 'Look up HTTP response status codes from RFC 9110 and the IANA registry.' It uses a specific verb ('look up') and resource, and further distinguishes itself by explaining search modes (code, category, free-text). This is a distinct lookup tool among the sibling calculators/generators, so it scores high.

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

Usage Guidelines4/5

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

The description provides clear examples of when to use the tool ('Search by code (404), category (4xx), or free-text (not found)') which implies usage contexts like debugging. However, it does not explicitly mention when not to use it or name alternative tools. There are no exclusions, but explicit alternatives are missing, so it stays at 4 per the rubric.

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

internal-do-not-callA
Read-onlyIdempotent
Inspect

Internal — do not call. (This is a honeypot; calling it bans your IP.)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior1/5

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

The description contradicts the annotations: it warns that calling bans your IP, implying a side effect, while annotations declare readOnlyHint=true and destructiveHint=false. This is a serious inconsistency that could confuse an agent.

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 sentence delivers the warning with maximum clarity and no wasted words. It is perfectly front-loaded and easy to parse.

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?

Despite the annotation contradiction, the description alone is fully sufficient for an agent to know the tool is off-limits. No output schema or parameters exist, so nothing else is needed.

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

Parameters4/5

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

The tool has zero parameters, so no parameter details are needed. The empty schema and 100% coverage make the baseline 4 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 is unambiguous: this is an internal honeypot that must not be called. It uses a clear directive ('do not call') and explicitly states its nature, distinguishing it from all sibling tools.

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

Usage Guidelines5/5

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

It provides explicit when-not-to-use guidance ('do not call') and the consequence (IP ban). No alternatives are needed since the tool should never be invoked.

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

jet-lag-calculatorA
Read-onlyIdempotent
Inspect

Predict jet-lag severity and recovery time for a trip between two time zones. Accounts for the direction asymmetry — eastbound (clock advances) takes roughly 1 day per zone; westbound (clock falls back) takes ~2/3 of a day per zone. Returns severity band, estimated recovery days, and direction-specific adjustment tips (pre-flight schedule shift, light exposure, melatonin window, meal timing).

ParametersJSON Schema
NameRequiredDescriptionDefault
toOffsetYesDestination time zone as a UTC offset in hours. Same range and units as fromOffset.
fromOffsetYesOrigin time zone as a UTC offset in hours. Range -12 (Baker Island) to +14 (Kiribati). Examples: New York = -5 (or -4 in DST), London = 0 (or +1 in BST), Tokyo = +9, Sydney = +10 (or +11 in AEDT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipsYesEvidence-based jet-lag countermeasures tailored to direction and severity. Empty when origin and destination are in the same zone.
severityYesSeverity band. none = 0 zones; mild = under 3 zones; moderate = 3 through 6; severe = more than 6.
toOffsetYesDestination UTC offset, echoed back.
diffHoursYesAbsolute time-zone difference in hours (always >= 0, max 12 — eastward and westward routes are equivalent past 12 zones).
directionYesDirection of travel relative to circadian rhythm. 'east' = clock advances at destination (harder). 'west' = clock falls back (easier). 'none' = same time zone.
fromOffsetYesOrigin UTC offset, echoed back.
recoveryDaysYesEstimated days to full circadian re-alignment. Eastbound ≈ 1 day per zone; westbound ≈ 0.67 days per zone. Rounded to one decimal place.
Behavior5/5

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

Beyond the annotations (read-only, idempotent), the description discloses the core behavioral model: direction asymmetry with quantitative recovery rates (1 day per zone eastbound, ~2/3 day per zone westbound), and the exact output categories (severity band, recovery days, direction-specific tips). This provides deep transparency into how the tool computes and what it returns.

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

Conciseness5/5

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

The description is three sentences, each earning its place: purpose, behavioral rule, and output details. It is front-loaded with the main action and avoids any fluff or 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?

Given the output schema exists and the annotations cover safety profile, the description completes the picture by explaining the algorithm directionality, output types, and even the nature of adjustment tips. There are no unresolved gaps for a calculator 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 100%: both fromOffset and toOffset are well described with ranges and examples. The description adds no additional parameter-specific meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb ('Predict') and resource ('jet-lag severity and recovery time for a trip between two time zones'), clearly distinguishing this calculator from general time zone tools. It further specifies direction asymmetry and returns categories, which sets it apart from sibling calculators.

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 it clear the tool is for predicting jet lag between two time zones, which is a clear usage context. It does not explicitly mention exclusions or alternatives, but given the unique specialization, no close sibling competes directly.

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

json-formatterA
Read-onlyIdempotent
Inspect

Format JSON: pretty-print with indentation or minify to a single line. Validates the input — invalid JSON returns a clear error pointing at the problem.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesInput JSON text. Must parse as valid JSON.
modeNopretty: indent with spaces (default). minify: strip all whitespace.
indentNoSpaces of indent for pretty mode. Default 2.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesMode used.
outputYesFormatted JSON string.
bytes_inYesLength of the input string.
bytes_outYesLength of the output string.
Behavior4/5

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

The description goes beyond the annotations by disclosing that the tool validates input and returns a clear error on invalid JSON, which is not stated in the schema or annotations. It also explains the two output behaviors (pretty-print with indentation vs. minify). Since annotations already declare readOnlyHint, idempotentHint, and destructiveHint, the added behavioral context is valuable and non-contradictory.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action and mode options, and includes a brief mention of the error handling. Every word contributes necessary information with no filler or redundancy. It is concise yet complete for a tool of this simplicity.

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 low complexity (3 params, all documented in schema), the presence of an output schema, and robust annotations (readOnly, idempotent, non-destructive), the description covers all necessary behavioral aspects: formatting modes, validation, and error reporting. It does not need to explain return values because the output schema exists, and the description adds appropriate context for the tool's usage.

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

Parameters3/5

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

The schema covers all three parameters with descriptions (100% coverage), so the baseline is 3. The description adds modest context by explaining the 'pretty' and 'minify' modes, which corresponds to the 'mode' parameter, and implies validation for the 'json' parameter. However, it does not add significant detail beyond the schema's own parameter descriptions, such as defaults or constraints.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Format JSON') and resource ('JSON'), and distinguishes between two modes (pretty-print or minify). It also mentions validation, setting it apart from generic converters or calculators in the sibling list. The resource and action are unambiguous and fully aligned with the tool name.

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

Usage Guidelines4/5

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

The description implies when to use the tool (when needing to format or validate JSON) and clearly distinguishes the two modes. It does not explicitly mention when not to use it or list alternatives, but the sibling tools are unrelated to JSON formatting, so no alternative is needed. The contexts of 'pretty-print' and 'minify' provide clear usage scenarios.

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

jwt-decoderA
Read-onlyIdempotent
Inspect

Decode a JWT into its header and payload. Does NOT verify the signature — use this for inspection only, never to trust the token's claims.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesThe JWT to decode. Standard 3-part base64url-encoded format: header.payload.signature.

Output Schema

ParametersJSON Schema
NameRequiredDescription
headerYesDecoded header JSON.
expiredYesWhether the token has expired, or null if no exp.
payloadYesDecoded payload JSON.
issued_atYesISO timestamp from 'iat' claim, or null.
expires_atYesISO timestamp from 'exp' claim, or null.
not_beforeYesISO timestamp from 'nbf' claim, or null.
signature_presentYesWhether the signature segment is non-empty.
signature_verifiedYesAlways false — this tool does not verify signatures.
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the critical behavioral fact that the tool does NOT verify the signature, which is beyond the annotations and essential for safe use. This fully discloses the tool's 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 two sentences with no fluff. It leads with the core action, then adds the critical caveat. Every word earns its place.

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

Completeness5/5

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

For a simple tool with one parameter and an output schema, the description covers the purpose, the key non-verification behavior, and usage caution. There is no need to explain return values since the output schema exists. The description is complete for safe and correct usage.

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 'token' has a clear description including the expected format. The tool description does not add any additional parameter semantics beyond what the schema already documents, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Decode a JWT into its header and payload.' This clearly states what the tool does and distinguishes it from any potential verifier or other JWT-related tool. The mention of 'header and payload' makes the output explicit.

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

Usage Guidelines4/5

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

The description explicitly states 'use this for inspection only' and warns 'never to trust the token's claims,' providing clear when-to-use and when-not-to-use guidance. However, it does not name any alternative tool for signature verification, so it falls slightly short of the highest bar for explicit alternatives.

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

length-converterA
Read-onlyIdempotent
Inspect

Convert between common length units: millimeter, centimeter, meter, kilometer, inch, foot, yard, mile.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit.
valueYesLength value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
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, and the description's 'Convert' is consistent with a read-only, stateless transform. The description adds no additional behavioral context (e.g., rounding or precision), but none are necessary for this simple operation. It does not contradict the annotations.

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

Conciseness5/5

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

The description is a single, information-dense sentence that lists all supported units without any fluff. It is front-loaded with the verb and resource, making it easy to parse quickly.

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 simple, stateless nature, a complete input schema, and the presence of an output schema, the description fully covers the tool's purpose and context. No additional information about return values or edge cases is needed.

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

Parameters3/5

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

The input schema has 100% coverage with clear descriptions for value, from, and to, including enums for the unit fields. The description adds no extra meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Convert' and specifies the resource ('common length units') along with all eight supported units, clearly distinguishing it from similar converter tools like area-converter or weight-converter. The purpose is immediately obvious.

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 enumeration of length units (millimeter, centimeter, meter, etc.) makes the usage context unambiguous: use this tool for length conversions. However, it does not explicitly name alternative tools or state exclusions, so it earns a 4 rather than a 5.

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

loan-calculatorA
Read-onlyIdempotent
Inspect

Compute the monthly payment, total interest, and total cost of a fixed-rate amortizing loan. Uses the standard amortization formula. All amounts use the same (unspecified) currency.

ParametersJSON Schema
NameRequiredDescriptionDefault
principalYesLoan amount (principal).
term_yearsYesLoan term in years.
annual_rate_percentYesAnnual interest rate as a percentage (e.g. 6.5 for 6.5%).

Output Schema

ParametersJSON Schema
NameRequiredDescription
monthsYesTerm in months.
principalYesPrincipal, echoed back.
term_yearsYesTerm in years, echoed back.
total_paidYesTotal paid (principal + interest).
total_interestYesTotal interest paid over the life of the loan.
monthly_paymentYesMonthly payment amount.
annual_rate_percentYesAnnual rate, echoed back.
Behavior4/5

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

The description adds transparency beyond the annotations by specifying the standard amortization formula and warning that all amounts share the same but unspecified currency. These are behavioral details not captured by the read-only/idempotent 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 three short sentences, with the primary purpose in the first sentence and key behavioral notes following. Every sentence adds value without repetition or 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?

The description is sufficient for this simple calculator: it covers the calculation type, formula, and currency caveat, while the output schema and annotations fill in the remaining structural details. Nothing essential is missing.

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

Parameters4/5

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

The input schema already documents all three parameters, so the description doesn't need to repeat them. However, it adds the semantic note that principal and computed amounts use the same currency, which clarifies how to interpret the numeric values.

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 'Compute' and names the exact financial outputs (monthly payment, total interest, total cost) and the loan type (fixed-rate amortizing). This clearly distinguishes it from the many other calculator siblings and states the tool's core function.

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

Usage Guidelines4/5

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

The description clearly defines the use case: fixed-rate amortizing loans, which implies it is not for other loan types. However, it does not mention any alternative tools or explicitly state when not to use it, so it stops short of full usage guidance.

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

meeting-cost-calculatorA
Read-onlyIdempotent
Inspect

Calculate the total cost of a meeting given its duration and a list of attendees with hourly rates. Returns total cost, per-attendee breakdown, cost-per-minute, and order-of-magnitude comparisons (number of $4.50 lattes, number of $800 fully-loaded office days).

ParametersJSON Schema
NameRequiredDescriptionDefault
attendeesYesList of attendee rows. At minimum one row. Each row carries a role label, hourly rate, and count — letting you model 'one PM at $90/hr + six engineers at $80/hr' as two rows.
duration_minutesYesMeeting length in minutes (e.g. 30 for a half-hour, 60 for an hour, 15 for a standup). Must be greater than zero and at most 1440 (24 hours).

Output Schema

ParametersJSON Schema
NameRequiredDescription
total_costYesTotal cost of the meeting in dollars, rounded to cents.
per_attendeeYesPer-role breakdown — same length as the input attendees array.
cost_per_hourYesSum of (rate × count) across all attendees — the 'burn rate' while the meeting runs.
cost_per_minuteYestotal_cost / duration_minutes, rounded to cents.
total_attendeesYesSum of attendee counts across all roles.
duration_minutesYesDuration echoed from the input.
coffees_equivalentYestotal_cost ÷ $4.50 (mid-2025 US average chain latte), rounded down to whole coffees.
office_days_equivalentYestotal_cost ÷ $800 (fully-loaded daily cost per US knowledge worker), rounded to one decimal place.
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. The description adds context beyond that by listing the return values (total cost, per-attendee breakdown, cost-per-minute, order-of-magnitude comparisons). No contradiction with annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with a parenthetical clarifying output examples. Every phrase earns its place, with no redundancy or filler.

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

Completeness5/5

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

For a simple calculator with a robust output schema and full parameter descriptions, the description adequately covers when to use it and what it returns. No additional context is necessary for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already provides rich descriptions for 'duration_minutes' and 'attendees' (e.g., 'fully loaded' explanation, count semantics). The tool description only mentions 'duration' and 'attendees with hourly rates', adding no meaningful 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?

The description uses a specific verb ('Calculate') and resource ('total cost of a meeting'), clearly stating inputs and expected outputs. It distinguishes itself from sibling calculators like coffee-habit-cost-calculator or road-trip-cost-calculator by focusing specifically on meetings.

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

Usage Guidelines4/5

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

The description implies when to use the tool: when you have a meeting duration and attendees with hourly rates. It does not explicitly name alternatives or exclusions, but the input requirements are clearly stated, making the usage context unambiguous.

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

molar-mass-calculatorA
Read-onlyIdempotent
Inspect

Compute the molar mass (g/mol) of a chemical compound from its formula. Parses standard notation with element symbols, subscripts, nested parentheses, and hydrate dots. Returns the total molar mass and a per-element breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
formulaYesChemical formula in standard notation. Element symbols use a capital letter optionally followed by one lowercase letter (Na, Cl, Fe). Subscripts are written as plain digits after the symbol or group (H2O, C6H12O6, Ca(OH)2). Parentheses group atoms with a shared subscript. Hydrate notation with a dot is supported (CuSO4·5H2O).

Output Schema

ParametersJSON Schema
NameRequiredDescription
formulaYesThe original input formula, unchanged.
breakdownYesPer-element breakdown in Hill order (C, H, then alphabetical). Each entry has the element symbol, total atom count in the formula, atomic weight (g/mol), and contribution to the total (count × atomicWeight).
molarMassYesMolar mass in grams per mole (g/mol).
normalizedYesThe input with whitespace stripped and unicode subscripts converted to ASCII digits.
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. The description adds meaningful behavior beyond these: it parses standard notation including nested parentheses and hydrate dots, and returns both a total and per-element breakdown. This provides useful context without contradicting the annotations.

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

Conciseness5/5

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

The description is two sentences. The first sentence states the core function and output unit; the second explains parsing capabilities and return contents. Every phrase earns its place, with no wasted words or repetition of annotations.

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 read-only calculator, the description is complete. It covers input syntax, supported notation variants, and output shape. Annotations (readOnly, idempotent, non-destructive) and an output schema exist, reducing the burden on the description to describe return values or safety. No critical gaps remain.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the 'formula' parameter with examples and notation rules. The description's mention of 'nested parentheses' and 'hydrate dots' adds no new semantic value beyond what the schema already provides. Baseline 3 is correct when structured data carries the burden.

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 'Compute the molar mass (g/mol) of a chemical compound from its formula,' using a specific verb and resource. It clearly distinguishes itself from the many sibling calculator tools by specifying the exact domain (molar mass) and the input type (chemical formula).

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 states the tool's scope and parsing capabilities, making it clear when it should be used. There is no explicit exclusion or naming of an alternative, but among the sibling tools, none offer molar mass calculation, so the usage context is unambiguous. A 4 is appropriate because guidance is implied rather than explicitly stated.

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

nps-calculatorA
Read-onlyIdempotent
Inspect

Compute Net Promoter Score (NPS) from promoter / passive / detractor counts, or from a raw array of 0–10 scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
scoresNoOptional raw scores in 0–10. When provided, the engine buckets them itself and ignores `promoters`/`passives`/`detractors`.
passivesNoCount of respondents who scored 7 or 8. Required if `scores` is not provided.
promotersNoCount of respondents who scored 9 or 10. Required if `scores` is not provided.
detractorsNoCount of respondents who scored 0–6. Required if `scores` is not provided.

Output Schema

ParametersJSON Schema
NameRequiredDescription
npsYesNet Promoter Score in the range −100 to +100. Rounded to the nearest whole number.
totalYesTotal respondents counted.
ratingYesBain & Company's standard NPS bands: <0 needs-work, 0–30 good, 30–70 great, >70 world-class.
npsExactYesUnrounded NPS, useful when the caller wants extra precision.
passivesYesResolved passive count.
promotersYesResolved promoter count (echoed back so the widget can chart it).
detractorsYesResolved detractor count.
passivePctYesPassives as a percentage of total, to one decimal.
promoterPctYesPromoters as a percentage of total, to one decimal.
detractorPctYesDetractors as a percentage of total, to one decimal.
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 covered. The description adds the key behavioral fact that raw scores are auto-bucketed (and the schema clarifies that scores override counts), which is useful beyond annotations.

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

Conciseness5/5

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

A single sentence that leads with the action and metric, then lists the two supported input forms. No filler or redundancy.

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

Completeness5/5

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

The tool is a simple pure calculation; annotations cover read-only/idempotent behavior, the schema fully documents parameters and constraints, and an output schema exists for return values. The description supplies the remaining piece—what the tool computes and which inputs are accepted—so it is complete for the tool's 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%, with each parameter's bucket meaning and the mutual-exclusion rule documented in the JSON schema itself. The description only reiterates the two modes at a high level, so it adds minimal new semantic value beyond the schema.

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

Purpose5/5

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

The description names the exact calculation ('Net Promoter Score') and the verb 'Compute,' and it specifies two distinct input modes (pre-aggregated counts vs raw 0–10 scores). This distinguishes it from the many sibling calculators by naming a unique metric.

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 states the tool computes NPS from either counts or raw scores, giving clear context for when to choose it. It doesn't explicitly name alternative tools to use instead, nor does it state exclusions, but the context is unambiguous among the sibling calculators.

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

npv-calculatorA
Read-onlyIdempotent
Inspect

Compute Net Present Value (NPV) and Internal Rate of Return (IRR) for a series of cashflows discounted at a given rate. Returns NPV, an Accept/Reject decision, IRR, and a per-period present-value breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
cashflowsYesExpected cashflows for periods 1, 2, …, N. Index 0 is period 1. Negative values are allowed (mid-life capex). Must contain at least one entry.
initial_investmentYesPeriod-0 outlay as a positive number (e.g. 10000 for a $10,000 upfront cost). Subtracted from the discounted-cashflow sum.
discount_rate_percentYesPer-period discount rate as a percentage (e.g. 10 for 10%). Must be greater than −100. Negative rates are allowed but unusual.

Output Schema

ParametersJSON Schema
NameRequiredDescription
npvYesNet Present Value. Positive → accept; negative → reject; zero → indifferent.
periodsYesPer-period breakdown.
decisionYesPlain-language verdict. Accept when NPV > 0, Reject when NPV < 0, Break-even when |NPV| < 0.01.
irr_percentYesInternal Rate of Return as a percentage. The discount rate that makes NPV = 0. Null when no IRR exists in [-99%, +10000%] (e.g. all cashflows are negative).
total_inflowsYesSum of all cashflows in periods 1..N (undiscounted).
total_pv_inflowsYesSum of all present values in periods 1..N.
initial_investmentYesEchoed back.
discount_rate_percentYesEchoed back.
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 return-value context (Accept/Reject decision, breakdown) but does not disclose any edge-case behaviors, such as the NPV decision rule (e.g., accept if NPV >= 0) or handling of multiple IRRs. This is acceptable given the strong annotations, but it leaves some behavioral traits undocumented.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core action, and contains zero filler. Every sentence earns its place: the first states the primary function, the second lists the return values. This is an ideal level of conciseness.

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 low complexity, comprehensive schema descriptions, presence of an output schema, and strong annotations, the description is complete. It covers the purpose, inputs, and outputs sufficiently for an agent to select and invoke the tool correctly. No critical gaps remain.

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 (initial_investment, discount_rate_percent, cashflows) already having detailed descriptions. The tool description adds no additional parameter semantics beyond restating 'cashflows discounted at a given rate.' Per the calibration baseline, a score of 3 is appropriate when the schema fully covers parameter meaning.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs and resources: 'Compute Net Present Value (NPV) and Internal Rate of Return (IRR) for a series of cashflows discounted at a given rate.' It also lists the outputs (NPV, Accept/Reject decision, IRR, per-period present-value breakdown), fully distinguishing it from sibling tools like loan-calculator or discount-calculator.

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

Usage Guidelines4/5

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

The description provides clear context on what the tool does, which implies when to use it (for NPV/IRR calculations). It does not explicitly name alternatives or exclusions, but the sibling list contains no other financial-calculator tools, so confusion is unlikely. A minor gap is the lack of explicit 'when not to use' guidance, but the purpose is unambiguous.

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

palindrome-checkerA
Read-onlyIdempotent
Inspect

Test whether a word or phrase is a palindrome. Compares the input lowercased and stripped of non-alphanumeric characters against its reverse.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesWord or phrase to test.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lengthYesLength of the cleaned input.
cleanedYesInput lowercased and stripped of non-alphanumeric characters.
reversedYesThe cleaned input reversed.
is_palindromeYesTrue if the input is a palindrome.
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds valuable behavioral context: input is lowercased and stripped of non-alphanumeric characters before comparison. It does not explain return format, but output schema exists to cover that.

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

Conciseness5/5

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

Two sentences, no filler: the first states the core purpose, the second explains the algorithm. Every word earns its place.

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

Completeness5/5

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

This is a low-complexity tool with a single parameter and an output schema. The description covers the essential normalization behavior, making it fully sufficient for an agent to select and invoke 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% with the parameter 'text' described as 'Word or phrase to test.' The description adds normalization processing details but does not alter or expand parameter meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states a specific verb ('Test whether') and a well-defined resource ('a word or phrase is a palindrome'), with exact normalization behavior (lowercased, stripped of non-alphanumerics) that distinguishes it from sibling tools like reverse-text or case-converter.

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 context is unmistakable: use this tool to test for palindromes. It doesn't explicitly name alternatives or exclusions, but the tool's niche is so distinct among siblings that no further guidance is needed.

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

passphrase-generatorA
Read-onlyIdempotent
Inspect

Assemble a Diceware-style passphrase from a list of words. Returns the joined string, the word count, and an entropy estimate in bits.

ParametersJSON Schema
NameRequiredDescriptionDefault
digitNoOptional decimal digit (0–9) appended to the end of the passphrase. Omit to skip the digit.
wordsYesThe words to assemble into the passphrase, in order. Pick at least 2, at most 20. Each word must be non-empty.
separatorYesCharacter placed between words. One of '-' (hyphen), '_' (underscore), ' ' (space), or '.' (dot).
capitalizeYesWhen true, the first letter of each word is uppercased. When false, words are left as-is.
dictionarySizeYesSize of the wordlist the caller picked from. Used to compute entropy bits. Defaults to 7776 (the EFF Long Wordlist). Pass the actual source size if you used a different list.

Output Schema

ParametersJSON Schema
NameRequiredDescription
strengthYesCoarse strength label based on entropy: <50 weak, 50–69 fair, 70–99 strong, ≥100 very strong.
wordCountYesNumber of words in the passphrase.
passphraseYesThe assembled passphrase, ready to copy.
entropyBitsYesEstimated entropy in bits, computed as log2(dictionarySize) × wordCount. Higher is harder to brute-force.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as safe, so the description's main contribution is disclosing the return payload—'the joined string, the word count, and an entropy estimate in bits.' This adds useful context beyond the annotations without any contradiction.

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

Conciseness5/5

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

The description is two sentences: the first states the primary action, the second summarizes the output. No wasted words, no repetition of schema or annotation content. It is front-loaded with the core purpose and efficiently structured.

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 full schema coverage, strong annotations, and an output schema, the description only needs to provide a high-level summary. It successfully communicates what the tool does and what it returns, which is sufficient for an agent to select and invoke 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% with detailed descriptions for all five parameters. The tool description adds no new parameter semantics beyond what the schema already provides; for example, dictionarySize's role in entropy is already documented in the schema. The baseline of 3 applies because the schema carries the full load.

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

Purpose5/5

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

The description clearly states the tool's function: 'Assemble a Diceware-style passphrase from a list of words.' The verb 'Assemble' and the specific resource ('Diceware-style passphrase') define a unique purpose that distinguishes it from siblings like password-generator. It also mentions the return values, further clarifying scope.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when you have a list of words to assemble into a passphrase), but it does not explicitly state when to use it over alternatives such as password-generator, and it offers no exclusions or alternative recommendations. Usage guidance remains implicit rather than direct.

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

password-generatorA
Read-onlyIdempotent
Inspect

Generate cryptographically random passwords. Caller controls length and character classes (uppercase / lowercase / numbers / symbols). Uses crypto.getRandomValues — strong enough for real passwords.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoHow many passwords to generate. Defaults to 1. Max 50.
lengthNoPassword length in characters. Defaults to 16. Min 4, max 128.
numbersNoInclude 0-9. Defaults true.
symbolsNoInclude !@#$%^&*-_=+. Defaults true.
lowercaseNoInclude a-z. Defaults true.
uppercaseNoInclude A-Z. Defaults true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesHow many passwords were generated.
lengthYesPassword length used.
passwordsYesArray of generated passwords.
pool_sizeYesSize of the character pool the passwords were drawn from.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description adds valuable context by specifying the use of crypto.getRandomValues and the strength of the output. This goes beyond the annotations and helps the agent understand the security characteristics of the tool.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action, and contains no unnecessary words. Every phrase adds value, and the structure is highly scannable.

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?

The tool is simple, the output schema exists, and the description covers the core purpose and security-relevant behavior. Combined with the schema and annotations, it provides sufficient context for an agent to understand and invoke the tool correctly.

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

Parameters3/5

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

The schema has 100% coverage with clear descriptions for each parameter, so the baseline is 3. The description mentions 'character classes' and 'length' but does not add additional meaning beyond what the schema already provides, making it adequate but not exemplary.

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 generates cryptographically random passwords and lists the controllable character classes. It is specific and actionable, but it does not explicitly distinguish itself from the sibling 'passphrase-generator' tool, so it falls short of a 5.

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

Usage Guidelines3/5

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

The description implies usage for 'real passwords' and explains that the caller controls length and character classes, providing some context. However, it does not explicitly state when to prefer this tool over alternatives like passphrase-generator, nor does it provide exclusions.

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

percentage-calculatorA
Read-onlyIdempotent
Inspect

Calculate percentages three ways: what's X% of Y, what % is X of Y, and what's the % change from X to Y. Use mode='of' for the first form, mode='ratio' for the second, mode='change' for the third.

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesFirst number. Meaning depends on mode (see description).
bYesSecond number. Meaning depends on mode.
modeYesWhich percentage operation. 'of' = X% of Y, 'ratio' = X is what % of Y, 'change' = % change from X to Y.
precisionNoDecimal places in the result. Defaults to 2.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesCalculated result.
formulaYesFormula used to compute the result.
explanationYesHuman-readable description of what was computed.
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 clear. The description adds the three-mode breakdown but repeats information already present in the schema's mode description, offering minimal additional 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?

Two compact sentences: the first states the overall purpose, the second gives explicit mode mappings. No filler or redundant 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?

The tool is simple, all parameters are documented in schema (including precision), output schema exists, and the description explains all three modes. Nothing critical is missing for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

Schema description coverage is 100%, providing baseline 3. The description goes further by giving concrete examples of what X and Y mean in each mode ('what's X% of Y', 'what % is X of Y'), making parameter semantics more intuitive than the schema alone.

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

Purpose5/5

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

The description clearly states the tool calculates percentages in three distinct ways, specifying the exact forms (X% of Y, X as % of Y, % change). This distinguishes it from sibling calculator tools and immediately conveys its scope.

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

Usage Guidelines4/5

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

It provides clear context by explaining the three operation modes and explicitly maps each mode to a use case. It does not mention alternatives or when not to use this tool, but for a percentage calculator the covered forms are comprehensive enough.

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

pressure-converterA
Read-onlyIdempotent
Inspect

Convert between pressure units: pascal, kilopascal, bar, psi, atmosphere, mmhg.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit.
valueYesPressure value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
Behavior3/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, covering the safety profile. The description adds no further behavioral detail, but it does not contradict the annotations.

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

Conciseness5/5

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

The description is a single concise sentence that lists the supported units, with no filler or redundancy. Every word earns its place.

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

Completeness5/5

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

Given the simple nature of the tool, the strong schema coverage, and the presence of annotations and an output schema, the description adequately conveys the tool's purpose without requiring more detail.

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 provides full descriptions for all parameters, and the enum values match the units listed in the description. The description adds no new semantic information beyond what the schema already specifies.

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

Purpose5/5

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

The description clearly states the tool converts pressure units and enumerates all supported units (pascal, kilopascal, bar, psi, atmosphere, mmhg), making its purpose unambiguous and distinguishing it from other converter tools.

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

Usage Guidelines4/5

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

The description provides clear context by specifying it converts between pressure units, which implies when to use it. It does not explicitly mention alternatives, but the unit list defines the scope precisely.

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

prime-checkerA
Read-onlyIdempotent
Inspect

Test whether an integer ≥ 2 is prime. Returns the verdict plus the prime factorization (useful for composite numbers).

ParametersJSON Schema
NameRequiredDescriptionDefault
nYesThe integer to test. Must be ≥ 2.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nYesInput number, echoed back.
is_primeYesTrue if n is prime.
factor_countYesNumber of prime factors (with multiplicity).
prime_factorsYesPrime factorization of n.
Behavior4/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 clear. The description adds value by disclosing that the return includes the prime factorization, which is a behavioral detail beyond what the annotations provide. No contradiction with annotations.

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

Conciseness5/5

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

A single, front-loaded sentence with zero wasted words. It immediately states the core function and adds a useful note about factorization without fluff.

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

Completeness5/5

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

For a simple, stateless, read-only tool with a clear input schema and output schema, the description fully covers the essential behavior. It communicates the purpose and return value, and no additional context is needed for an agent to select and invoke it correctly.

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

Parameters3/5

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

The schema has 100% coverage, including a full description for parameter n ('The integer to test. Must be ≥ 2.'). The tool description does not add any additional meaning about parameters, so it relies entirely on the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Test'), the resource ('an integer ≥ 2'), and the purpose ('is prime'). It also mentions the additional output of prime factorization, which fully distinguishes it from sibling tools (no other prime-related tool exists).

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

Usage Guidelines4/5

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

The description implies exactly when to use this tool: when you need to test primality. It doesn't name alternatives or exclusions, but because no sibling tool provides similar functionality, the context is clear and unambiguous. A 5 would require explicit alternative guidance, which isn't necessary here.

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

protein-intake-calculatorA
Read-onlyIdempotent
Inspect

Daily protein intake recommendation (grams/day and grams/kg) from body weight, activity level, and goal. References: ISSN position stand on protein and exercise (Jäger et al. 2017) and Helms et al. (JISSN 2014) for protein during a caloric deficit.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesBody-composition goal. 'maintain' = current weight + recovery. 'build-muscle' = caloric surplus + hypertrophy training. 'lose-fat' = caloric deficit while preserving lean mass.
weightYesBody weight as a positive number, in the unit specified by weight_unit.
weight_unitYesUnit for the weight input. 'kg' = kilograms, 'lb' = pounds.
activity_levelYesSelf-reported activity. 'sedentary' = desk job, no training. 'moderately-active' = exercise 3-5×/week. 'very-active' = daily training. 'athlete' = competitive, multiple sessions/day.

Output Schema

ParametersJSON Schema
NameRequiredDescription
basisYesPlain-English label for which band was used (e.g. 'Build muscle: 1.6-2.2 g/kg'). Useful for UI captions.
weight_kgYesBody weight in kilograms (converted if input was lb).
g_per_kg_lowYesLower bound of the recommended protein-per-kg range.
g_per_kg_highYesUpper bound of the recommended protein-per-kg range.
g_per_kg_midpointYesMidpoint of the g/kg range — the single number to aim for.
grams_per_day_lowYesDaily protein in grams at the low end of the range.
grams_per_day_highYesDaily protein in grams at the high end of the range.
grams_per_day_midpointYesDaily protein in grams at the midpoint — the recommended target.
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 safety is well-covered. The description adds context about output units and scientific references, but does not disclose potential limitations (e.g., applicability to healthy adults only) or justify assumptions. It is sufficient but not rich in behavioral detail.

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

Conciseness5/5

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

The description is two sentences: the first front-loads the purpose and outputs, the second adds credible references. There is no fluff, and every word contributes to understanding.

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

Completeness5/5

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

Given the simplicity of a calculator tool with complete schema descriptions and an output schema, the description is fully adequate. It states outputs, references, and inputs, leaving no essential gaps.

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

Parameters3/5

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

The input schema provides 100% coverage of parameter descriptions, including enums and unit meanings. The description adds no parameter-specific details beyond what the schema already states, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: to calculate daily protein intake recommendation in grams/day and grams/kg based on body weight, activity level, and goal. It uses a specific verb ('recommendation') and identifies the resource (protein intake) and inputs, distinguishing it from any calculator sibling.

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 implicitly tells the agent when to use this tool—whenever a protein intake recommendation is needed—and there are no competing sibling tools for this domain. However, it lacks explicit 'when not to use' or alternative tool references, so it doesn't fully meet the highest bar.

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

random-numberA
Read-onlyIdempotent
Inspect

Generate one or more random numbers in [min, max]. By default returns integers; pass integer=false for floats. Uses Math.random() (not crypto-strong).

ParametersJSON Schema
NameRequiredDescriptionDefault
maxYesInclusive upper bound.
minYesInclusive lower bound.
countNoHow many numbers to generate. Defaults to 1. Max 1000 per call.
integerNoIf true, returns integers only. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
maxYesUpper bound used (inclusive).
minYesLower bound used (inclusive).
countYesHow many numbers were generated.
integerYesWhether integers were requested.
numbersYesArray of generated numbers.
Behavior5/5

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

Beyond annotations that already mark it read-only, idempotent, and non-destructive, the description adds valuable behavioral details: it uses Math.random(), explicitly warns this is not cryptographically strong, and clarifies default integer behavior. This gives the agent critical information about randomness quality for sensitive use cases.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core purpose, and every clause adds useful information. No filler or 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 simple random-number generator with four well-documented parameters and an available output schema, the description covers purpose, safety, randomness quality, and configuration. It is complete enough for an agent to invoke correctly without additional context.

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

Parameters3/5

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

Schema coverage is 100% and the description mostly mirrors the schema (inclusive bounds, integer default, count). It adds context by framing parameters in a usage sentence, but does not provide material meaning beyond the schema's own parameter 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 opens with a specific action ('Generate one or more random numbers in [min, max]') and clearly distinguishes the tool from siblings by explicitly covering range, count, and integer/float modes. It is unambiguous and self-contained.

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

Usage Guidelines4/5

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

The description implies the tool should be used whenever random numbers in a numeric range are needed, and explains how to switch between integer and float outputs. However, it does not mention alternatives (e.g., uuid-generator for random IDs) or explicitly 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.

recipe-scalerA
Read-onlyIdempotent
Inspect

Scale a recipe's ingredient quantities to a new serving count. Multiplies parseable amounts by target_servings / original_servings; passes 'to taste', 'pinch', and lines with no quantity through unchanged. Handles fractions, mixed numbers, decimals, and ranges. Does not convert between units — '2 cups' scales to '4 cups', not to grams.

ParametersJSON Schema
NameRequiredDescriptionDefault
ingredientsYesIngredient list, one per line, free-form. Recognized forms include '2 cups flour', '1 1/2 tsp salt', '0.5 lb butter', '1-2 cups broth'. Lines with no parseable quantity (e.g. 'salt to taste', 'a pinch of pepper') pass through unchanged.
target_servingsYesThe serving count you want the recipe to produce. Must be > 0. Example: cooking for 6 instead of 4 → 6.
original_servingsYesThe serving count the recipe was originally written for. Must be > 0. Example: a recipe that says 'Serves 4' → 4.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ratioYestarget_servings / original_servings.
ingredientsYesOne entry per non-empty input line, in input order.
target_servingsYes
original_servingsYes
Behavior5/5

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

The description goes well beyond the annotations by detailing the exact scaling formula, handling of unparseable lines, support for fractions/ranges, and the unit limitation. This gives the agent a strong understanding of edge cases and output behavior, complementing the readOnly and idempotent 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?

Three sentences each earn their place: first states the primary purpose, second explains behavior for edge cases, third clarifies a key limitation. No redundancy or 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?

Given the presence of an output schema and fully described parameters, the description covers all necessary behavioral details: formula, pass-through cases, number formats, and unit handling. It is complete 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?

The input schema already provides 100% coverage with clear descriptions and examples for each parameter. The description reiterates the scaling formula and pass-through behavior, which adds slight context but doesn't significantly improve parameter understanding beyond what the schema offers.

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 ('Scale') and resource ('a recipe's ingredient quantities') with a clear outcome ('to a new serving count'). It distinguishes from sibling tools by focusing on recipe-specific scaling rather than generic calculators or converters.

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

Usage Guidelines4/5

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

The description clearly implies usage for scaling recipe ingredient quantities and explicitly states what it does not do ('Does not convert between units'). While it doesn't name an alternative tool, it provides sufficient context for when to use this tool and when not to (e.g., for unit conversion).

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

regex-testerA
Read-onlyIdempotent
Inspect

Test a JavaScript regex against text. Returns all matches with their positions, captured groups, and named groups. Defaults to global flag so all occurrences are found.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to test against.
flagsNoRegex flags. Allowed: g, i, m, s, u, y. Defaults to 'g'.
patternYesThe regex pattern, without delimiters. Standard JavaScript regex syntax.

Output Schema

ParametersJSON Schema
NameRequiredDescription
flagsYesFlags used.
matchesYesFirst 100 matches with positions and captured groups.
patternYesRegex pattern, echoed back.
truncatedYesTrue if more than 100 matches were truncated.
match_countYesTotal number of matches found.
Behavior5/5

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

The description adds valuable behavioral context beyond the annotations: it discloses that all matches are returned with positions, captured groups, and named groups, and that the global flag is default so all occurrences are found. This complements the readOnlyHint and idempotentHint annotations without contradicting them.

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

Conciseness5/5

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

The description is two concise sentences with no redundant content. It front-loads the core purpose and immediately follows with output specifics and default behavior—every sentence carries useful 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?

Given that an output schema exists and annotations declare the tool as read-only and idempotent, the description sufficiently covers what the agent needs: the tool's purpose, the nature of its output, and a critical default behavior. No significant gaps remain for correct selection and invocation.

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

Parameters3/5

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

The input schema provides 100% coverage of parameter descriptions, so the baseline is 3. The description's mention of 'defaults to global flag' simply restates what the schema already documents for the 'flags' parameter, and no additional syntactic or format details are offered beyond the schema.

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

Purpose5/5

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

The description opens with 'Test a JavaScript regex against text', which uses a specific verb and resource, immediately clarifying the tool's function. It further distinguishes itself by detailing outputs (matches, positions, captured groups, named groups) and the default global-flag behavior, separating it from any potential generic 'regex' tool.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool: whenever a JavaScript regex needs to be tested against text. There are no direct sibling tools that compete, and the note about defaulting to the global flag sets expectations for how results will behave, though it stops short of explicitly stating alternatives or exclusions.

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

rem-to-pxA
Read-onlyIdempotent
Inspect

Convert REM (relative to root font size) to pixels. Defaults to a 16px base (browser default); pass base_px to use a different root size.

ParametersJSON Schema
NameRequiredDescriptionDefault
remYesThe REM value to convert.
base_pxNoBase font size in pixels. Defaults to 16 (browser default).

Output Schema

ParametersJSON Schema
NameRequiredDescription
remYesInput REM value, echoed back.
pixelsYesEquivalent pixel value.
base_pxYesBase font size used.
em_equivalentYesEquivalent em value (same as rem in this context).
Behavior4/5

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

Annotations already mark the tool as read-only and idempotent; the description adds the default 16px base and the optional base_px override. It also clarifies that REM is root-relative, adding useful behavioral context without contradicting annotations.

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

Conciseness5/5

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

The description is a single, efficient sentence that conveys the conversion, the default, and the optional parameter. Every phrase earns its place with no redundancy.

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

Completeness5/5

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

Given the tool's simplicity, rich annotations, and presence of an output schema, the description fully covers necessary information. It explains the conversion, default behavior, and adjustable base without needing to document return values.

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

Parameters3/5

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

The schema already provides 100% parameter coverage, including the 16px default for base_px. The description reinforces the meaning of REM but adds little beyond the schema's existing parameter documentation.

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

Purpose5/5

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

The description clearly states it converts REM to pixels, specifying the base font size default. It names the exact units and conversion direction, distinguishing it from other converter 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 explains when to use the tool (converting REM to px) and how to customize with base_px, including the browser default. It doesn't mention alternatives, but the context is clear and no exclusions are needed.

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

reverse-textA
Read-onlyIdempotent
Inspect

Reverse a string character-by-character. Unicode-aware — handles emoji and combining characters correctly using Array.from on the iterator.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to reverse.

Output Schema

ParametersJSON Schema
NameRequiredDescription
outputYesReversed text, Unicode-safe.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds valuable behavioral context about Unicode handling and implementation ('using Array.from on the iterator'), which goes beyond annotation information.

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 concise, two sentences, front-loaded with the core purpose. Every word earns its place; the implementation detail is relevant but not excessive.

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 simplicity, one well-described parameter, existing output schema, and strong annotations, the description fully covers what an agent needs to know for correct invocation and result interpretation.

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

Parameters3/5

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

Schema coverage is 100% with the parameter description 'Text to reverse.' The tool description adds context about how the text is processed (character-by-character, Unicode-aware), but this does not significantly augment the schema-provided meaning.

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

Purpose5/5

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

The description clearly states the action ('Reverse a string') and resource ('string'), with additional specificity ('character-by-character'). It distinguishes from sibling text tools like case-converter and sort-lines by the unique verb and scope.

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

Usage Guidelines4/5

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

The description implies when to use this tool, particularly for Unicode-aware reversal ('handles emoji and combining characters correctly'), which sets expectations for usage. It does not explicitly mention alternatives, but the tool's singular function makes that less critical.

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

road-trip-cost-calculatorA
Read-onlyIdempotent
Inspect

Estimate the total cost of a road trip from fuel, lodging, food, attractions, and tolls. Supports both imperial (miles + MPG + $/gallon) and metric (km + L/100km + per-liter) inputs. Returns total cost, fuel-only subtotal, per-person split, and cost per mile/km.

ParametersJSON Schema
NameRequiredDescriptionDefault
tollsNoOptional total toll cost for the trip (in the same currency). Defaults to 0. Pulled out as its own line so the fuel subtotal stays a pure miles-per-gallon math.
distanceYesRound-trip driving distance. Use the unit specified by `unit_system` — miles for 'imperial', kilometers for 'metric'. For a one-way drive, double the one-way distance.
travelersNoNumber of travelers. Defaults to 1 when omitted. Used to compute per-person cost and to scale the food subtotal (food_per_day × travelers × duration_days). Lodging, fuel, attractions, and tolls are billed once per trip.
fuel_priceYesFuel price in local currency units. Dollars per gallon for 'imperial' (US average ~$3.50/gal mid-2025), or per liter for 'metric' (EU average ~€1.65/L).
attractionsNoTotal budget for attractions, activities, and entry tickets across the whole trip (in the same currency). Defaults to 0. Already a per-group total — not multiplied by travelers.
unit_systemNoWhich unit set the distance and fuel-economy inputs are in. 'imperial' = miles + MPG + $/gallon (default); 'metric' = kilometers + L/100km + price per liter.
food_per_dayNoAverage food cost per traveler per day, in the same currency as `fuel_price`. Defaults to 0 when omitted. Multiplied by `duration_days` AND `travelers` for the subtotal.
fuel_economyYesFuel economy. Higher-is-better when `unit_system` is 'imperial' (MPG, miles per gallon — e.g. 28 for an average US sedan). Lower-is-better when `unit_system` is 'metric' (L/100km — e.g. 8.4 for an average European car).
duration_daysYesTrip duration in whole days, including the departure day and return day. A weekend trip (leave Sat, return Sun) is 2 days; a week-long trip is 7.
lodging_nightsNoOverride for the number of paid lodging nights. Useful when you booked a night before departure or the return is an overnight drive. When omitted, the engine uses max(duration_days − 1, 0).
lodging_per_nightNoAverage lodging cost per night, in the same currency as `fuel_price`. Defaults to 0 when omitted (sleeping at home or with hosts). The engine bills lodging for (duration_days − 1) nights by default; override with `lodging_nights` if you booked differently.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fuel_usedYesTotal fuel consumed for the trip — gallons when `unit_system` is 'imperial', liters when 'metric'. Rounded to two decimals.
per_personYestotal_cost ÷ travelers, rounded to cents.
total_costYesTotal trip cost in the input currency, rounded to cents.
unit_systemYesUnit system echoed from the input.
cost_per_mileYestotal_cost ÷ distance — the all-in cost per unit of distance. Per mile for 'imperial', per kilometer for 'metric'. Rounded to cents.
food_subtotalYesFood cost: food_per_day × travelers × duration_days.
fuel_subtotalYesFuel-only subtotal — what gas costs you for the round trip.
lodging_nightsYesNumber of paid lodging nights actually billed.
tolls_subtotalYesTolls subtotal, echoed from the input.
lodging_subtotalYesLodging cost across all paid nights.
attractions_subtotalYesAttractions/activities subtotal, echoed from the input.
Behavior5/5

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

The description adds substantial behavior beyond the readOnlyHint/idempotentHint annotations by disclosing the return values (total cost, fuel-only subtotal, per-person split, cost per mile/km) and noting the unit handling. This gives agents a clear understanding of what the tool computes and returns.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core purpose and immediately followed by supported inputs and outputs. Every word earns its place with no fluff or redundancy.

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

Completeness5/5

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

Despite the tool's complexity (11 parameters, output schema), the description covers the essential output categories and unit flexibility. Since an output schema exists, detailed return structure is already available, making this description complete for tool selection and invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with each of the 11 parameters already documented in detail. The prose description repeats a few parameter concepts (imperial/metric units) but does not add meaning beyond the schema. Baseline 3 is appropriate since the schema carries the semantic burden.

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

Purpose5/5

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

The description clearly states the specific verb 'estimate' and the resource 'total cost of a road trip', listing the cost components (fuel, lodging, food, attractions, tolls). It also distinguishes itself from sibling calculators by emphasizing road-trip-specific features like unit systems and per-person splits.

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

Usage Guidelines4/5

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

The description provides clear context: it is for estimating road trip costs with support for imperial/metric units. However, it does not explicitly mention when not to use it or compare to alternatives like travel-budget-calculator, so it falls short of the top score.

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

salary-to-hourlyA
Read-onlyIdempotent
Inspect

Convert an annual salary to hourly, daily, weekly, and monthly equivalents. Defaults to a standard 40-hour, 52-week schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
annual_salaryYesAnnual gross salary in the same (unspecified) currency as the output.
hours_per_weekNoWorking hours per week. Defaults to 40.
weeks_per_yearNoWorking weeks per year. Defaults to 52.

Output Schema

ParametersJSON Schema
NameRequiredDescription
annualYesAnnual rate, echoed back.
hourlyYesHourly rate.
weeklyYesWeekly rate.
monthlyYesMonthly rate.
daily_8hYesDaily rate at 8 hours/day.
hours_per_weekYesHours per week used.
weeks_per_yearYesWeeks per year used.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the agent knows this is a safe, non-mutating operation. The description adds the default 40-hour, 52-week behavior, which is useful context beyond annotations. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single sentence that leads with the core action and includes the most important default behavior. Every word earns its place; no filler or unnecessary detail.

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

Completeness5/5

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

For a simple, single-purpose calculator, the description combined with full schema coverage and an output schema is complete. It explains the conversion types and defaults, and the agent can rely on schema for parameter details and output schema for return shape. No significant gaps.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter clearly documented in the input schema. The description's mention of the default schedule adds no new semantic meaning beyond what the schema already specifies. Thus baseline score of 3 is appropriate.

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

Purpose5/5

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

Description clearly states it converts an annual salary to hourly, daily, weekly, and monthly equivalents, which is a specific verb+resource+output. It distinguishes this tool from sibling calculators by focusing on salary-to-time-period conversions. The default schedule note adds useful scope.

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

Usage Guidelines4/5

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

The description provides clear context: it is for converting annual salaries into various period-based equivalents, with a default 40-hour, 52-week schedule. It does not explicitly mention alternatives or exclusions, but the context makes the intended use obvious. No misleading guidance is present.

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

scientific-notationA
Read-onlyIdempotent
Inspect

Convert a number to scientific and engineering notation. Returns the coefficient, exponent, and several human-readable forms.

ParametersJSON Schema
NameRequiredDescriptionDefault
nYesThe number to convert. Accepts standard or already-in-scientific-notation values.
precisionNoSignificant digits in the coefficient. Defaults to 4.

Output Schema

ParametersJSON Schema
NameRequiredDescription
exponentYesThe exponent part.
standardYesStandard decimal form.
scientificYesNumber in scientific notation (e.g. '4.5 × 10^-5').
coefficientYesThe coefficient part.
engineeringYesEngineering notation form.
Behavior3/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully known. The description adds only a note about return forms, which is already covered by the output schema, so it provides minimal additional 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?

Two short sentences front-loaded with the main purpose. No redundant or filler 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?

As a simple conversion tool with complete schema coverage, annotations, and an output schema, the description sufficiently captures the tool's function. It also explicitly mentions the dual scientific and engineering notation feature, which is valuable distinguishing context.

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

Parameters3/5

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

Schema covers both n and precision with descriptions for each; schema_description_coverage is 100%. The description adds no additional parameter details, so it relies on the schema as baseline.

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

Purpose5/5

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

States a specific action: converting a number to scientific and engineering notation. Clearly distinguishes from sibling calculators which handle other conversions. The mention of returns (coefficient, exponent, human-readable forms) reinforces the scope.

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

Usage Guidelines4/5

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

Implies usage for numeric notation conversion, which is clear given the name and description. Does not explicitly state when not to use it or mention alternatives, but the context of sibling converter tools makes the intended use obvious.

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

sha256-generatorA
Read-onlyIdempotent
Inspect

Compute the SHA-256 hash of a text string. Returns the digest as a 64-character lowercase hex string. UTF-8 encoded.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to hash. UTF-8 encoded before hashing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexYes64-character lowercase hex digest.
algorithmYesHash algorithm name (always 'SHA-256').
bytes_hashedYesNumber of bytes that were hashed.
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description goes beyond them by specifying that the output is a 64-character lowercase hex string and that input is UTF-8 encoded. This adds useful technical context about the hash behavior, though it doesn't discuss edge cases like empty input or maximum length (which is 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.

Conciseness5/5

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

The description is two concise sentences, front-loaded with the primary action. Every word adds value: the compute verb, the algorithm, the input type, the output format, and the encoding. No fluff or 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 simple stateless tool with one well-documented parameter, an output schema, and annotations covering safety, the description is fully complete. It even states the return format, which is a nice bonus. No gaps remain for the agent 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 coverage is 100%: the only parameter 'text' has a description stating it is UTF-8 encoded before hashing. The description's mention of UTF-8 encoding merely echoes the schema, adding no new semantic meaning. Baseline of 3 is appropriate because the schema already documents the parameter thoroughly.

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

Purpose5/5

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

The description states a specific action ('Compute') and a specific resource ('SHA-256 hash'), making the tool's purpose immediately clear. It distinguishes itself from siblings like base64 or uuid-generator by explicitly naming the algorithm and the text input.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: computing a SHA-256 hash of a text string. It doesn't explicitly mention when not to use it or name alternatives, but the function is so specialized that the intended usage is obvious. No misleading exclusions are present.

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

sleep-debt-calculatorA
Read-onlyIdempotent
Inspect

Compute cumulative sleep debt across the last 7 nights given a personal target. Returns total debt in hours, per-night deficits, the worst night, and an estimate of how many nights at +1h over target would clear the debt. Severity is banded for UI color-coding. Educational only — does not replace clinical sleep assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
actual_hoursYesActual sleep hours for the last 7 nights, most recent night LAST. Each entry 0-24. Use 0 for an all-nighter; partial hours allowed (e.g. 6.5).
target_hoursYesPersonal target sleep hours per night. Most adults need 7-9 (default 8). Should reflect the amount of sleep you feel rested after, not an aspirational number.

Output Schema

ParametersJSON Schema
NameRequiredDescription
severityYesBanded severity for color-coding the result. 'none' = no debt; <6h mild; 6-12h moderate; 12-20h severe; >20h extreme.
recovery_nightsYesEstimated nights to clear the debt assuming +1 hour over target per night. Educational — full cognitive recovery from chronic sleep loss takes longer than the math suggests (see Why We Sleep).
total_debt_hoursYesCumulative sleep debt in hours over the 7-night window. Nights where you slept AT OR ABOVE the target contribute zero (no negative debt — surplus sleep doesn't bank).
per_night_deficitYesPer-night deficit (target - actual), clamped to 0. Same order as actual_hours.
worst_night_indexYes0-indexed position of the night with the largest deficit (target - actual). -1 if no night was below target.
nights_below_targetYesCount of nights where actual_hours < target_hours.
average_actual_hoursYesMean of actual_hours across all 7 nights, regardless of target.
Behavior5/5

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

Beyond the readOnly and idempotent annotation hints, the description discloses what the calculation returns (total debt, per-night deficits, worst night, clearance estimate), mentions severity banding for UI color-coding, and adds an important educational-only disclaimer. This is rich, useful behavioral context with no contradiction to 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 three tightly written sentences with the main action front-loaded. Every sentence adds value: computation scope, return details/severity banding, and the educational disclaimer. There is no filler or repetition of schema 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?

Given the simple 2-parameter input, rich annotations, and presence of an output schema, the description is complete. It explains the purpose, expected outputs, severity presentation, and safety caveat, so an agent has enough context to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description reinforces 'personal target' but does not add parameter formatting or constraints beyond what the schema already provides. The schema descriptions for actual_hours and target_hours carry the substantive semantic detail.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Compute cumulative sleep debt across the last 7 nights given a personal target.' It precisely scopes the operation and clearly distinguishes it from sibling calculators like jet-lag-calculator or average-calculator. Listing the return outputs further clarifies exactly what the tool does.

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

Usage Guidelines4/5

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

The description gives clear context: it is for computing sleep debt over the last 7 nights against a personal target. It also includes a when-not-to-use exclusion ('does not replace clinical sleep assessment'). However, it does not explicitly name alternative tools or contrast with sibling calculators, so it stops short of full alternative guidance.

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

smoking-cost-calculatorA
Read-onlyIdempotent
Inspect

Compute the lifetime cost of a smoking habit — cigarettes per day × pack price × years — and compare it against what the same money would have grown to if invested at a given annual return. Returns total spent, annual spend (the 'quit today' figure), invested future value, and the opportunity-cost gap. Defaults to US averages: $7/pack, 20 cigarettes per pack. The CDC estimates total US smoking-related cost (medical + lost productivity) at $1.4 trillion/year — this calculator answers the personal version of that number.

ParametersJSON Schema
NameRequiredDescriptionDefault
pack_priceYesPrice per pack in dollars. The US average is ~$7 (mid-2024); NYC and a few high-tax states exceed $12; the cheapest states sit near $6.
years_smokedYesYears over which the habit continues. Use total years if you're modeling a lifetime habit (e.g. 30 for a smoker who started at 18 and is now 48).
cigarettes_per_dayYesCigarettes smoked per day. A pack-a-day habit is 20. Fractional values allowed (e.g. 10 for half a pack, 7 for a workweek-only habit).
cigarettes_per_packYesCigarettes per pack. Defaults to 20 (the US/EU standard). Override for 25-cigarette packs (Canada, Australia) or 10-cigarette packs.
annual_return_percentYesOptional expected nominal annual return on the alternative investment, as a percentage (e.g. 7 for 7%). Set to 0 to skip the invested-future-value comparison. 7% real or 10% nominal are common long-term US stock-market assumptions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
daily_spendYesCost of cigarettes smoked per day, in dollars.
total_packsYesTotal packs purchased (total_cigarettes ÷ cigarettes_per_pack), rounded.
total_spentYesTotal nominal dollars spent on cigarettes over years_smoked.
annual_spendYesdaily_spend × 365. The 'you'd save $X/year if you quit today' figure.
total_monthsYesNumber of monthly contributions (years × 12, rounded to integer).
monthly_spendYesdaily_spend × 365 / 12.
invested_valueYesFuture value of investing the same monthly amount at annual_return_percent over years_smoked (end-of-month contributions). Equals total_spent when annual_return_percent is 0.
opportunity_costYesinvested_value − total_spent. Positive when the investment outgrows the cash spent (typical with positive return). Zero when return is 0%.
total_cigarettesYesTotal cigarettes consumed over the horizon (cigarettes_per_day × 365 × years).
Behavior5/5

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

Beyond the read-only/idempotent annotations, the description discloses exact outputs (total spent, annual spend, invested future value, opportunity-cost gap), the default pack price and pack size, and the CDC context. These behavioral details help an agent set expectations accurately.

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 primary purpose, followed by outputs and defaults. No filler; every sentence carries functional value.

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

Completeness5/5

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

With an output schema present and all inputs documented, the description complements the structured data by explaining the calculation logic, default assumptions, and return semantics. It leaves no major gaps for an agent deciding to invoke the 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?

The schema fully documents all five parameters with rich descriptions, so the baseline is 3. The description goes further by stating the formula 'cigarettes per day × pack price × years' and clarifies how annual_return_percent drives the opportunity-cost comparison, adding relational meaning not in the schema.

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

Purpose5/5

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

The description opens with a specific verb ('Compute'), names the resource (lifetime cost of a smoking habit), and gives the exact formula and return values, making it unambiguous and distinct from sibling cost calculators.

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 does not name alternatives or exclusion scenarios, but it provides clear context: it defines the calculator's scope (personal lifetime cost), notes US-average defaults, and clarifies the optional investment comparison. This gives sufficient guidance without explicit alternative pointers.

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

sort-linesA
Read-onlyIdempotent
Inspect

Sort the lines of a text block. Options: ascending or descending, optional dedupe, optional case-insensitive compare.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMulti-line text. Each line is a separate sort key.
uniqueNoIf true, dedupe lines as part of the sort. Default false.
directionNoSort direction. Default asc.
case_insensitiveNoIf true, compare case-insensitively. Default false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
outputYesSorted text with newline-joined lines.
line_countYesNumber of lines in the output.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds the configurable behaviors but doesn't disclose edge-case handling (e.g., blank lines, line endings), though not essential for a simple utility.

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 clear sentence, front-loaded with the core action. No fluff.

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

Completeness5/5

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

This is a simple pure function with a well-specified schema and annotations. The description conveys the essential capability and options; output schema handles return 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 covers 100% of parameters with descriptions. The description merely summarizes the options ('ascending or descending, optional dedupe, optional case-insensitive compare') without adding syntax, defaults, or nuanced details beyond the schema.

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

Purpose5/5

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

The description uses the specific verb 'sort' with the resource 'lines of a text block', and enumerates options (ascending/descending, dedupe, case-insensitive) that clarify its scope and distinguish it from siblings like dedup-lines.

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

Usage Guidelines3/5

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

No explicit guidance on when to choose this tool over alternatives like dedup-lines or case-converter. The use case is implied by the name and description, but no exclusions or alternative references are provided.

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

speed-converterA
Read-onlyIdempotent
Inspect

Convert between speed units: km/h, m/s, mph, knots, ft/s.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit: km/h, m/s, mph, knots, ft/s.
valueYesSpeed value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
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, covering the safety profile. The description adds no extra behavioral context such as rounding behavior or return format, but this is not a significant gap for a simple converter.

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: 'Convert between speed units: km/h, m/s, mph, knots, ft/s.' Every word adds value, and there is no repetition or filler.

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

Completeness4/5

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

Given the tool's simplicity, full parameter descriptions, comprehensive annotations, and existence of an output schema, the description is largely complete. It could mention rounding or precision, but that is not essential for a straightforward 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%, with each parameter having a description and enums for from/to. The description repeats the unit list but does not add meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Convert') and resource ('speed units'), and enumerates the exact units ('km/h, m/s, mph, knots, ft/s'). This distinguishes it from sibling converter tools like length-converter or temperature-converter.

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

Usage Guidelines3/5

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

The description implies usage for speed conversions but does not explicitly state when to use this tool over alternatives, nor does it mention any exclusions. Given the many sibling converters, this is adequate but lacks explicit guidance.

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

square-root-calculatorA
Read-onlyIdempotent
Inspect

Compute square root, cube root, square, and cube of a number. Returns all four so callers don't have to call four tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
nYesThe input number. Must be non-negative for the square root branch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cubeYes
squareYes
cube_rootYes∛n
square_rootYes√n
Behavior4/5

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

Annotations already declare readOnly=true, idempotent=true, and destructive=false. The description adds that it returns all four results at once, which is not captured in annotations, providing useful behavioral context. The schema separately documents the non-negative constraint for square root, so the description adds value without contradiction.

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

Conciseness5/5

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

Two concise, front-loaded sentences deliver the main purpose and rationale without any wasted words. Every sentence earns its place.

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

Completeness5/5

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

Given the simple one-parameter calculator with a comprehensive schema, output schema, and annotations, the description fully covers what the tool does and why it returns multiple results. No additional behavioral context is needed; the schema and annotations handle the rest.

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

Parameters3/5

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

Schema coverage is 100%, with the parameter n fully described including the non-negative constraint for the square root branch. The tool description itself does not add parameter semantics beyond saying 'of a number,' so the baseline of 3 applies—the schema already does the heavy lifting.

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

Purpose5/5

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

The description explicitly states the computed operations (square root, cube root, square, cube) and notes it returns all four at once, distinguishing it from a tool that computes only one operation. This makes its purpose clear and specific beyond the tool name.

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

Usage Guidelines4/5

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

The phrase 'so callers don't have to call four tools' provides clear context that this tool should be used when any of these calculations are needed, implying a convenience over calling separate tools. However, it does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

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

temperature-converterA
Read-onlyIdempotent
Inspect

Convert between Celsius, Fahrenheit, and Kelvin. Pass value + from + to.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit.
valueYesThe temperature value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
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, covering the safety profile. The description adds no additional behavioral context beyond the conversion itself, which is acceptable but does not exceed 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 two short sentences, front-loaded with the main purpose and immediately followed by minimal usage instructions. Every word is necessary and no filler is present.

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 conversion tool, the description provides sufficient context: supported units and required parameters. The presence of an output schema (indicated in signals) and comprehensive annotations fill any remaining gaps. Minor absence of edge-case handling is not critical here.

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

Parameters3/5

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

Schema coverage is 100% with each parameter clearly described (value, from, to). The description's 'Pass value + from + to' adds no extra meaning beyond what the schema already provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb (Convert) and resource (temperature scales Celsius, Fahrenheit, Kelvin), distinguishing it from sibling converters like angle-converter or length-converter.

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

Usage Guidelines4/5

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

The description implies usage context by naming the three units and explicitly instructing 'Pass value + from + to.' It does not mention when not to use or alternatives, but the intended use is obvious for a temperature converter.

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

terms-of-service-generatorA
Read-onlyIdempotent
Inspect

Assemble a Terms of Service document from a small set of inputs: company name, website, contact email, jurisdiction (state + country), service type (SaaS / e-commerce / content), and toggles for user-generated content, paid plans, refund window, and binding arbitration. Output is a complete plain-text document plus the list of section headings. NOT legal advice — the output is a starting template that a qualified attorney should review before publication.

ParametersJSON Schema
NameRequiredDescriptionDefault
paidPlanYesTrue if any part of the service is paid. Triggers sections 8 (Billing) and 9 (Refunds).
websiteUrlYesWebsite URL where the service is offered (e.g. 'https://example.com'). Used in section 2.
arbitrationYesTrue if disputes must be resolved by binding arbitration (rather than in court). Shapes section 15.
companyNameYesLegal or operating name of the company that runs the service (e.g. 'Acme, Inc.').
serviceTypeYesShape of the service: 'saas' (software/app), 'ecommerce' (online store), or 'content' (publication/media).
contactEmailYesEmail address users can write to with questions about the Terms (e.g. 'legal@example.com').
refundPolicyYesRefund window. 'none' means no refunds; the others grant a money-back period from purchase. Ignored if paidPlan is false.
effectiveDateYesEffective date in any human-readable form (e.g. '2026-05-14' or 'May 14, 2026'). Empty defaults to today's ISO date.
jurisdictionStateYesState, province, or region that governs the Terms (e.g. 'California', 'Ontario'). May be empty if not applicable.
jurisdictionCountryYesCountry whose law governs the Terms (e.g. 'United States', 'Brazil').
userGeneratedContentYesTrue if users can post, upload, or otherwise contribute content. Triggers section 5.

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentYesThe complete Terms of Service text, ready to copy or save.
sectionsYesSection headings emitted, in order — useful for a table of contents.
wordCountYesWord count of the rendered document.
disclaimerYesReminder that this output is a template, not legal advice.
Behavior4/5

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

Annotations already supply safety hints (read-only, idempotent, non-destructive). The description adds valuable context beyond that: the output is a plain-text template plus section headings, it is not legal advice, and an attorney should review it. No contradiction with annotations.

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

Conciseness5/5

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

The description is front-loaded with the verb and resource, uses three sentences, and every sentence earns its place: inputs, output, and caveat. It is concise without being under-specified.

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 11 parameters, 100% schema coverage, output schema, and annotations, the description covers the necessary context: what it does, what it returns, and important legal limitations. No critical information 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%, with each parameter already explaining its role (e.g., 'Triggers sections 8 and 9'). The description summarizes the inputs but does not add meaningful detail beyond what the schema provides, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Assemble') with an explicit resource ('a Terms of Service document'), lists the key input categories, and states the output format. This clearly distinguishes it from sibling tools like cookie-consent-generator.

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 context is clear: it generates a ToS template from a set of inputs. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions beyond the general 'not legal advice' caveat.

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

time-and-a-half-calculatorA
Read-onlyIdempotent
Inspect

Compute the time-and-a-half overtime rate (hourly × 1.5) and gross pay for a week with regular and overtime hours. Follows the US FLSA convention: hours past 40 are paid at 1.5× the base rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
hourly_rateYesBase hourly wage in dollars. The straight-time rate before any overtime premium.
regular_hoursNoStraight-time hours worked in the week. Defaults to 40 — the FLSA threshold above which time-and-a-half kicks in.
overtime_hoursNoHours worked past the regular threshold. Defaults to 0. These are paid at 1.5× the hourly rate.
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context: the FLSA convention that hours past 40 are paid at 1.5×, and the formula for gross pay, which goes 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?

Two sentences, well front-loaded with the core purpose and formula. No wasted words; every sentence earns its place.

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

Completeness4/5

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

The tool is simple and the schema plus description together cover inputs and calculation logic. The description could explicitly state the gross pay formula, but it is inferable from 'hourly × 1.5' and 'regular and overtime hours.' Given no output schema, it is sufficiently 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%, with each parameter well described. The description reinforces the meaning of regular and overtime hours but does not add significant new semantics beyond what the schema already states. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states a specific verb ('Compute') and resource (time-and-a-half overtime rate and gross pay), with the formula explicitly given. This distinguishes it from sibling tools like salary-to-hourly or other calculators, as it is uniquely positioned for overtime pay calculation.

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

Usage Guidelines4/5

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

The description provides clear context: it is for a week with regular and overtime hours and follows US FLSA convention. It does not explicitly name alternatives or exclusions, but the use case is well implied and no confusing overlap with siblings exists.

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

tip-calculatorA
Read-onlyIdempotent
Inspect

Compute the tip, total, and per-person split for a bill. All amounts use the same (unspecified) currency — the engine doesn't care about currency codes.

ParametersJSON Schema
NameRequiredDescriptionDefault
billYesPre-tip bill amount, in the same currency as the output.
splitNoNumber of people splitting the bill. Defaults to 1.
tip_percentYesTip percentage (e.g. 18 for 18%).

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipYesTip amount.
billYesPre-tip bill amount.
splitYesNumber of people the bill is split between.
totalYesTotal bill including tip.
per_person_tipYesEach person's share of the tip.
per_person_totalYesEach person's share of the total.
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. The description adds useful behavioral context by noting that all amounts share an unspecified currency and that currency codes are irrelevant, which is beyond the annotations. 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 two sentences with no filler. It front-loads the purpose and adds a clarifying note about currency, making it highly efficient.

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

Completeness4/5

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

For a simple calculator with an output schema, the description covers the main functionality and a key caveat. It doesn't mention rounding behavior, but given the output schema and annotations, the description is sufficiently complete. Slightly above the minimum due to the currency note.

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 (bill, split, tip_percent) already described in the schema. The description does not add further parameter-specific 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.

Purpose5/5

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

The description uses a specific verb ('Compute') and clearly identifies the resource (tip, total, and per-person split for a bill). It distinguishes itself from sibling calculators by focusing on tip calculation, which is unique among the listed tools.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (for calculating tip on a bill), but it does not explicitly mention when not to use it or name alternative tools. This is a clear context without exclusions, so it earns a 4.

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

travel-budget-calculatorA
Read-onlyIdempotent
Inspect

Estimate the total cost of a trip from flights, lodging, food, activities, ground transport, and an optional emergency buffer. Picks sane per-destination defaults (US domestic, Europe, Southeast Asia, Latin America, Africa) from a mid-2025 Numbeo-style reference table when a cost isn't provided. Returns total, per-person, daily average, and a category breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYesTrip duration in nights/days. Must be a positive integer ≤ 365. Use the number of nights you'll be away.
travelersYesNumber of travelers (adults equivalent). 1 for a solo trip, 2 for a couple, etc. Must be ≥ 1.
destinationYesTrip region — drives the reference daily-cost defaults. 'us-domestic', 'europe', 'southeast-asia', 'latin-america', 'africa', or 'custom' if you'll provide every cost yourself.
flight_costYesTotal cost of flights (or train/bus) for ALL travelers combined, in dollars. Enter 0 if you're driving or already have miles booked.
food_per_dayNoPer-person food and drink cost per day, in dollars. If omitted, the destination's reference default is used.
lodging_per_nightNoCost per night for lodging — the whole group (one room or shared Airbnb), not per person. If omitted, the destination's reference default is used.
transport_per_dayNoGround-transport cost per day for the whole group (cabs, rental car, transit passes), in dollars. If omitted, the destination's reference default is used.
activities_per_dayNoPer-person activities cost per day (museums, tours, tickets), in dollars. If omitted, the destination's reference default is used.
emergency_buffer_percentNoOptional safety margin applied to the subtotal, 0–50%. 10–15% is a common cushion for unexpected costs. Defaults to 0.

Output Schema

ParametersJSON Schema
NameRequiredDescription
daysYesTrip length echoed from the input.
totalYesGrand total trip cost, rounded to cents.
subtotalYesSum of the five line items before the emergency buffer is added.
breakdownYes
travelersYesTraveler count echoed from the input.
per_personYestotal / travelers, rounded to cents.
destinationYesDestination echoed from the input.
daily_averageYestotal / days, rounded to cents.
daily_costs_usedYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral context: automatic fallback to per-destination reference defaults (mid-2025 Numbeo-style) when costs are omitted, and the return shape (total, per-person, daily average, category breakdown). This exceeds what annotations alone 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?

The description is three sentences, front-loaded with the core purpose, and each sentence earns its place: function, defaults behavior, and output summary. There is no fluff or redundancy. Ideal conciseness for the tool's complexity.

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 rich schema (100% param descriptions), annotations, and presence of an output schema, the description need not explain every detail. It covers non-obvious behavior (defaulting, output breakdown) and is complete enough for an agent to invoke the tool correctly. No significant gaps.

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

Parameters3/5

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

The input schema provides 100% description coverage for all 9 parameters, including details like 'If omitted, the destination's reference default is used.' The description restates the category grouping but does not add additional parameter-level meaning beyond the schema. Per the baseline for high schema coverage, this is a 3.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Estimate the total cost of a trip' with explicit categories (flights, lodging, food, activities, ground transport, emergency buffer). The destination scope (US domestic, Europe, etc.) further clarifies its resource. It distinguishes itself from sibling cost calculators like road-trip-cost-calculator by focusing on multi-category trip estimation rather than just driving costs.

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

Usage Guidelines4/5

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

The description provides clear context: it is for estimating trip budgets, including optional per-destination defaults. It does not explicitly contrast with alternatives or state when not to use it, but the context is sufficient for an agent to select it appropriately. No misleading or exclusionary guidance is present.

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

truth-table-generatorA
Read-onlyIdempotent
Inspect

Generate the full truth table for a Boolean expression. Parses operators AND/OR/NOT/XOR/NAND/NOR/IMPLIES/IFF and their symbols, enumerates all 2^N variable assignments, and returns the result for each row plus the value of every sub-expression. Supports up to 6 variables (64 rows).

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesA Boolean expression. Operators: AND/OR/NOT/XOR/NAND/NOR/IMPLIES/IFF (case-insensitive) and symbols && || ! ^ -> <->. Variables are letters or short names (≤ 8 chars). Constants TRUE/FALSE/1/0 supported. Max 6 distinct variables.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsYesEvery row of the truth table.
canonicalYesParenthesized canonical form of the input expression.
variablesYesVariable names in first-appearance order, upper-cased.
isTautologyYesTrue if every row evaluates to true.
isContradictionYesTrue if every row evaluates to false.
subExpressionLabelsYesSub-expression strings shown as extra columns, in evaluation order.
Behavior5/5

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

Beyond the annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false), the description details the parsing of operators, enumeration of variable assignments, and the output of both row results and sub-expression values. It also explicitly states the maximum number of rows (64) and variable limit (6), which are important behavioral traits not captured in annotations. 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 succinct: two sentences that front-load the primary purpose, followed by essential details on operators, behavior, and limits. Every clause adds value, with no redundant or filler information. It is well-structured for quick comprehension.

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

Completeness5/5

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

Given the presence of an output schema (which presumably details return structure), the description need not elaborate on return values. It covers all necessary operational aspects: what the tool does, supported operators, variable limits, and output granularity. This is complete 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?

The input schema already provides a comprehensive description of the 'expression' parameter, covering operators, symbols, variables, constants, and limits (100% coverage). The description adds some context about parsing and output, but doesn't introduce new parameter-specific semantics beyond what the schema already states. Thus, the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Generate the full truth table for a Boolean expression.' It clearly distinguishes this tool from siblings by focusing on truth-table generation, which is unique among the listed tools. It also outlines the scope (Boolean expressions, up to 6 variables) 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 description provides clear context for when to use the tool: whenever a full truth table for a Boolean expression is needed. It does not explicitly mention alternatives or when not to use it, but there are no obvious sibling tools with overlapping functionality. The operational constraints (up to 6 variables, supported operators) effectively guide the user on applicability.

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

url-encoderA
Read-onlyIdempotent
Inspect

URL-encode or URL-decode a string. Uses RFC 3986 component encoding (encodeURIComponent semantics).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesencode: text → URL-encoded. decode: URL-encoded → text.
inputYesInput string.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesMode used, echoed back.
outputYesThe encoded or decoded result.
Behavior4/5

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

The description discloses important behavioral context beyond the annotations by explicitly stating 'RFC 3986 component encoding (encodeURIComponent semantics)'. This clarifies the exact encoding scheme, which is a meaningful addition. It does not contradict the readOnly/idempotent 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 single sentence that front-loads the core action and immediately follows with the technical detail. There is zero wasted wording, making it highly efficient.

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

Completeness4/5

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

For a simple two-parameter tool with a complete input schema, an output schema, and safety annotations, the description is sufficient. It adds the RFC 3986 context, which compensates for potential ambiguity. Minor omissions like error handling on invalid input are not critical given the tool's simplicity.

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

Parameters3/5

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

The schema already provides full descriptions for both parameters (mode with an explicit enum mapping, and input as 'Input string'), so coverage is 100%. The description adds no additional parameter-specific meaning beyond repeating the encode/decode functionality, so the baseline score applies.

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

Purpose5/5

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

The description clearly states the tool's function with specific verbs ('URL-encode or URL-decode') and a resource ('a string'). It distinguishes from siblings like base64 (different encoding scheme) and url-parser (parsing, not encoding) by specifying URL encoding and including the RFC 3986 detail.

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

Usage Guidelines3/5

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

The intended use is implied: if you need to URL-encode or decode, use this tool. However, it does not explicitly mention when to prefer this over alternatives such as base64 or url-parser, nor does it provide exclusion criteria. The guidance is minimal but not misleading.

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

url-parserA
Read-onlyIdempotent
Inspect

Parse a URL into its components: protocol, host, port, path, query parameters, hash. Returns the query string parsed into a key-value map.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to parse. Must include the protocol (http:// or https://).

Output Schema

ParametersJSON Schema
NameRequiredDescription
hashYesFragment identifier including leading '#', or empty.
hostYesHostname plus port if present.
pathYesPathname including leading slash.
portYesPort number as a string, or null.
queryYesRaw query string including leading '?', or empty.
originYesOrigin (protocol + host).
paramsYesParsed query parameters.
hostnameYesHostname only.
protocolYesURL protocol without trailing colon (e.g. 'https').
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 agent knows this is a safe, non-mutating operation. The description adds return-format context (query string as key-value map) but does not disclose error behavior for invalid URLs, which is a minor gap given the schema's protocol requirement.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action, and contains no redundant information. Every phrase contributes meaning.

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

Completeness4/5

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

For a simple, single-parameter tool with rich annotations and an output schema, the description is largely complete. It explains what the tool returns and the key constraint (protocol required). It does not discuss edge-case errors, but given the tool's simplicity and existing schema, this is acceptable.

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

Parameters3/5

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

Schema coverage is 100%; the 'url' parameter is described with the protocol requirement. The description adds output-related semantics but does not deepen parameter understanding beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (parse), the resource (URL), and the specific output components (protocol, host, port, path, query parameters, hash). It distinguishes itself from siblings like url-encoder by focusing on decomposition rather than transformation.

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

Usage Guidelines3/5

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

The description implies the tool is used when a URL needs to be broken down into its components, but it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites beyond the protocol requirement in the schema.

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

uuid-generatorA
Read-onlyIdempotent
Inspect

Generate one or more RFC 4122 v4 UUIDs (random). Returns an array of strings, even for a single UUID, so callers don't have to special-case length.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoHow many UUIDs to generate. Defaults to 1. Max 100 per call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesHow many UUIDs were generated.
uuidsYesArray of generated UUIDs.
Behavior4/5

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

Annotations already establish read-only, non-destructive, and idempotent behavior. The description adds valuable context beyond this: the return type is always an array of strings even for one UUID, and UUIDs are random. This helps callers handle responses correctly.

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 covers purpose and a key behavioral detail (array return) with no wasted words. The most important information is front-loaded.

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

Completeness5/5

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

This is a simple tool with one optional parameter, full schema coverage, and an output schema. The description states the return type and behavior, and annotations cover the safety profile. Nothing important is missing.

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

Parameters3/5

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

The input schema fully describes the 'count' parameter with min, max, default, and a clear description. The description's phrase 'one or more' reinforces the schema but adds no new semantic meaning beyond what the schema already provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Generate') and resource ('RFC 4122 v4 UUIDs'), clearly distinguishing it from sibling generator tools. It also specifies the random variant, leaving no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description clearly implies when to use it (whenever a v4 UUID is needed) and there is no sibling tool for UUID generation, so exclusions are unnecessary. It doesn't explicitly state alternatives, but the singular purpose makes the usage context clear.

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

volume-converterA
Read-onlyIdempotent
Inspect

Convert between volume units: liter, milliliter, cubic-meter, gallon-us, quart-us, pint-us, fluid-ounce-us, cup-us.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit.
valueYesVolume value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the supported unit list, but this is already present in the schema enums, providing no extra behavioral context beyond what is structured.

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

Conciseness5/5

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

The description is a single front-loaded sentence that names the operation and enumerates the relevant units. There is no redundancy or wasted words.

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

Completeness5/5

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

The tool is a simple pure conversion with all parameters required and documented, output schema present, and annotations covering safety. The description is sufficient for the agent to understand and invoke the tool without additional behavioral details.

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

Parameters3/5

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

Schema description coverage is 100%: each parameter has a description and the enums list all units. The description merely repeats the unit list without adding meaning beyond the schema, so it meets the baseline for full coverage but no more.

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 the exact operation ('Convert between volume units') and lists all supported units, which distinguishes it from other converter sibling tools (e.g., length-converter, temperature-converter). This fully clarifies the tool's purpose.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool (any volume conversion) and the unit list makes its scope obvious relative to sibling converters. It lacks explicit exclusions or alternative recommendations, so it does not reach the 5-level.

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

vowel-counterA
Read-onlyIdempotent
Inspect

Count vowels and consonants in text. ASCII-only — handles English-style letters. Returns vowel/consonant counts and the vowel ratio.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to analyze.

Output Schema

ParametersJSON Schema
NameRequiredDescription
wordsYesWord count.
vowelsYesVowel count.
lettersYesTotal letters (vowels + consonants).
consonantsYesConsonant count.
vowel_ratio_percentYesVowels as a percentage of letters.
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. The description adds valuable behavioral context beyond annotations: the ASCII-only limitation (English-style letters) and the return of vowel/consonant counts plus vowel ratio. No contradictions noted.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, and every word earns its place. The description is tightly written with no redundancy or filler.

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

Completeness5/5

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

For a simple single-parameter tool with a rich output schema and strong annotations, this description is complete. It covers the core behavior, the ASCII constraint, and the output shape, leaving no critical gaps for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100% (the sole 'text' parameter is described as 'Text to analyze'). The description adds meaningful constraint 'ASCII-only', which sharpens the acceptable input beyond the schema's generic description, and also clarifies the analysis scope.

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 'Count vowels and consonants in text', a specific verb+resource statement that clearly distinguishes this tool from sibling text tools like character-counter and word-counter. It adds the ASCII-only scope, further clarifying its purpose.

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

Usage Guidelines4/5

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

The purpose is so clear that the intended usage is implicit: use this when you need vowel/consonant counts and ratio. However, it does not explicitly name alternatives or exclusions, such as 'use character-counter for total character counts', so it stops short of full guidance.

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

weight-converterA
Read-onlyIdempotent
Inspect

Convert between common weight units: milligram, gram, kilogram, ounce, pound, stone, ton.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget unit.
fromYesSource unit.
valueYesWeight value to convert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYesTarget unit, echoed back.
fromYesSource unit, echoed back.
valueYesInput value, echoed back.
resultYesConverted value in the target unit.
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds no additional behavioral context (e.g., rounding, precision, supported value range). It is not contradictory, but it contributes nothing 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.

Conciseness5/5

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

The description is a single sentence with no filler, clearly stating the action and the units. It is concise, front-loaded, and 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 converter with full schema, output schema, and annotations, this short description is adequate. It lacks any mention of edge cases or return formatting, but the structured data covers most needs, making it sufficiently 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%, with descriptions for all three parameters and enums for from/to. The description only lists the units already captured in the schema, adding no new semantic information such as constraints or format expectations.

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 the specific verb 'Convert' and clearly identifies the resource as common weight units, explicitly listing the units (milligram, gram, kilogram, ounce, pound, stone, ton). This distinguishes it from sibling converters like length-converter or temperature-converter.

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 states what the tool does but gives no explicit guidance on when to use it versus alternatives, nor does it mention when not to use it. The context of sibling converters implies its use for weight conversions, but there's no direct comparison or exclusion.

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

weight-on-other-planetsA
Read-onlyIdempotent
Inspect

Given a weight on Earth (in kg or lb), return the equivalent weight on each of the eight planets plus Pluto. Surface-gravity values are from the NASA Planetary Fact Sheet; the ratio is gravity-on-planet ÷ Earth's 9.80665 m/s².

ParametersJSON Schema
NameRequiredDescriptionDefault
unitYesUnit the input weight is in. 'kg' (kilograms — the bathroom-scale unit in most of the world) or 'lb' (pounds — the US/UK bathroom-scale unit). Output is returned in the same unit; ratios are unit-independent.
weightOnEarthYesWeight on Earth, in the unit named by `unit`. Must be positive. Typical humans are 30–300 kg / 70–700 lb; the upper bound 2,000,000 covers vehicles, buildings, and silly inputs like 'blue whale'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
unitYesUnit the input weight is in. 'kg' (kilograms — the bathroom-scale unit in most of the world) or 'lb' (pounds — the US/UK bathroom-scale unit). Output is returned in the same unit; ratios are unit-independent.
planetsYesOne row per body, in order from the Sun: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
weightOnEarthYesThe input weight, echoed back.
Behavior4/5

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

Annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat safety traits. It adds valuable context by citing the NASA Planetary Fact Sheet and explaining the ratio formula, which goes beyond the minimal state.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core function, and the second sentence adds the source and formula. Every word serves a purpose with no redundancy.

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

Completeness5/5

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

Given the tool's simplicity, the presence of an output schema, and robust annotations, the description is complete. It explains the input, the conversion logic, and the source of the data, covering all necessary context.

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

Parameters3/5

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

The input schema covers 100% of parameter descriptions, including units and ranges. The description adds no new parameter information beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the function: given a weight on Earth, return equivalent weights on all eight planets plus Pluto. It uses a specific verb ('return') and a specific resource (weight on other planets), and it is easily distinguished from siblings like 'age-on-other-planets'.

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 usage context clear: it is for converting Earth weight to weights on other planets. It does not explicitly mention alternatives, but the context is unambiguous and the tool name plus sibling list make the differentiation obvious.

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

whitespace-removerA
Read-onlyIdempotent
Inspect

Remove or collapse whitespace in text. Modes: trim (edges only), collapse (also fold internal runs to one space), all (strip every whitespace character).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNotrim: leading/trailing only. collapse: also collapse internal runs to one space. all: remove every whitespace character. Default: collapse.
textYesText to clean.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesMode used, echoed back.
outputYesCleaned text.
removedYesNumber of characters removed.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so safety is established. The description adds behavioral context by summarizing the three modes and their effects, going slightly beyond the schema by framing them in a single concise sentence. It does not cover edge cases like Unicode whitespace or newline handling, but that's acceptable given the annotations.

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

Conciseness5/5

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

The description is a single sentence with an efficient colon-separated list of modes. It front-loads the purpose and contains zero redundant words, making it highly concise and well-structured.

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?

The tool is simple (2 params, one enum), the schema fully documents parameters and defaults, and the output schema is present. The description covers the core behavior and modes, so there are no significant gaps for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%: both `text` and `mode` have detailed descriptions, including the enum values and the default. The description largely repeats the mode semantics already in the schema, providing no new parameter meaning. This matches the baseline expected for high schema coverage.

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

Purpose5/5

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

The description opens with a specific verb and resource ('Remove or collapse whitespace in text') and then details three distinct modes. This makes it clear what the tool does and easily distinguishes it from sibling text tools like case-converter or reverse-text.

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 implicitly communicates when to use this tool—whenever whitespace needs to be removed or collapsed—and the mode breakdown provides clear context for each operation. However, it does not explicitly name alternatives or exclusion criteria, 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.

word-counterA
Read-onlyIdempotent
Inspect

Count words, characters, sentences, paragraphs, and reading time in a block of text. Words are Unicode-aware (handles non-Latin scripts). Reading time assumes 240 wpm.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to analyze. Capped at 60,000 characters. Larger inputs should be split client-side.

Output Schema

ParametersJSON Schema
NameRequiredDescription
wordsYesWord count.
sentencesYesSentence count.
charactersYesCharacter count including spaces.
paragraphsYesParagraph count.
reading_minutesYesEstimated reading time in minutes at 240 wpm.
characters_no_spacesYesCharacter count excluding spaces.
Behavior4/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 known. The description adds behavioral context about Unicode-awareness for non-Latin scripts and the 240 wpm reading-time assumption, which are not captured in the 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.

Conciseness5/5

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

Two concise sentences: one states the function, one adds a key behavioral note. The third about reading time is also brief and necessary. No filler or repetition of schema annotations.

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?

The tool is simple with full parameter documentation, a complete output schema expected, and annotations covering safety. The description covers the main function, Unicode handling, and reading-time assumption. Nothing important is missing for an agent to invoke this tool correctly.

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

Parameters3/5

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

Schema coverage is 100% with a detailed description of the 'text' parameter including the 60,000-character cap and client-side split guidance. The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb 'count' and enumerates the seven kinds of counts (words, characters, sentences, paragraphs, reading time) for a block of text. This distinguishes it from sibling tools like character-counter and vowel-counter, which likely target individual metrics.

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

Usage Guidelines4/5

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

The description clearly implies usage: whenever the agent needs any of the listed text metrics. It does not explicitly name alternative tools or exclusions, but the breadth of counted metrics provides adequate context for selecting this tool over more specialized siblings.

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

year-progressA
Read-onlyIdempotent
Inspect

Calculate how much of a calendar year has elapsed at a given moment. Returns percent elapsed/remaining, day-of-year, seconds elapsed/remaining, leap-year flag, and a 20-char ASCII progress bar. Useful for goal-tracking and 'how much of the year is left' moments.

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoReference timestamp as an ISO 8601 string (YYYY-MM-DD or full ISO datetime). If omitted, the handler treats it as 'now' — but engines are pure, so callers should pass an explicit value to keep results reproducible.
yearNoOverride the year. If omitted, derived from `at`. Use this to compute progress for a year other than the one containing `at` (e.g. ask 'what was 2024's progress on 2024-07-01' explicitly).

Output Schema

ParametersJSON Schema
NameRequiredDescription
yearYesThe year being measured.
dayOfYearYes1-indexed day number within the year (Jan 1 = 1).
isLeapYearYesTrue if the year is a leap year (366 days).
daysElapsedYesFull days elapsed from Jan 1 00:00 to `at`.
progressBarYes20-character ASCII progress bar built from █ (filled) and ░ (empty), e.g. '████████░░░░░░░░░░░░'.
daysRemainingYesFull days remaining from `at` to Dec 31 23:59:59.999.
percentElapsedYesPercent of the year that has elapsed at `at`, 0-100, rounded to 4 decimals.
secondsElapsedYesSeconds elapsed from start-of-year to `at`.
totalDaysInYearYes365 in normal years, 366 in leap years.
percentRemainingYesPercent of the year remaining after `at`, 0-100, rounded to 4 decimals.
secondsRemainingYesSeconds remaining from `at` to end-of-year.
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive; the description adds behavioral detail by listing what the tool returns (percent elapsed/remaining, day-of-year, seconds, leap-year flag, ASCII progress bar). It doesn't detail edge cases like timezone handling, but the annotation coverage lowers the burden.

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

Conciseness5/5

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

Two sentences, no fluff, front-loaded with the verb, and all sentences earn their place—first states action, second lists outputs and use cases.

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

Completeness5/5

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

For a simple calculation tool with full annotations, a 100%-described schema, and an output schema present, the description fully covers what the tool does, what it returns, and when to use it. No important information 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?

The input schema provides 100% description coverage for both `at` and `year`, including format guidance and semantics for the year override. The tool description itself adds no parameter-level nuance 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.

Purpose5/5

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

Description opens with a specific verb phrase ('Calculate how much of a calendar year has elapsed at a given moment') and enumerates the return fields (percent, day-of-year, seconds, leap-year flag, progress bar). This clearly distinguishes it from date-range siblings like days-between.

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?

States the tool is 'useful for goal-tracking and 'how much of the year is left' moments,' giving concrete use cases. However, it does not explicitly name alternatives or exclusion criteria, so it stops at clear context without full comparative guidance.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources