Skip to main content
Glama

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 already declare the tool as read-only, idempotent, and non-destructive. The description adds that it performs a specific statistical test and details the output. It does not mention assumptions like normal approximation, but this is minor for a standard 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 a single sentence that efficiently conveys purpose, method, and output list with no unnecessary words.

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

Completeness4/5

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

Given that an output schema exists, the description does not need to detail return values. It sufficiently covers the tool's function for a standard statistical calculator. Minor omission of assumptions does not significantly impact completeness.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions for all parameters. The tool description adds minimal extra meaning beyond clarifying that control_visitors is the denominator and that conversions cannot exceed visitors, which is already enforced by schema 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 identifies the tool as a two-proportion z-test for A/B conversion-rate experiments and lists all returned metrics (rates, confidence interval, lift, z-statistic, p-value, significance decision). It distinguishes itself from sibling 'ab-test-sample-size' by focusing on analysis rather than planning.

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 for analyzing A/B experiment results by listing typical outputs. It does not explicitly state when to use or not use it (e.g., small sample sizes), but the context is clear given the tool name and sibling list.

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.
Behavior3/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description only adds context about the statistical test type. It does not discuss assumptions (e.g., normal approximation) or potential edge cases, but for a calculator, this is acceptable.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the tool's purpose and input requirements without redundant information, making it highly concise.

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

Completeness5/5

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

Given the existence of an output schema and the tool's straightforward nature (computing a single numeric result), the description sufficiently covers the inputs and purpose, leaving no critical gaps.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds value by clarifying that 'minimum_detectable_effect' is a relative lift and that alpha is two-tailed. It also provides default values, which the schema does not include, enhancing parameter understanding.

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 calculates the required sample size per arm for a two-proportion A/B test, specifying the test type and key inputs. This differentiates it from sibling tools like 'ab-test-calculator' which may handle broader A/B test calculations.

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 lists all necessary inputs and their defaults (alpha=0.05, power=0.80), guiding the user on what to provide. However, it does not explicitly state when to use this tool over alternatives or mention any constraints, leaving room for clearer usage context.

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?

Discloses use of sidereal orbital periods from NASA Planetary Fact Sheet and Julian year for Earth, adding context beyond annotations which already indicate readOnly, idempotent, non-destructive 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?

Two sentences, no redundant words. Front-loaded with purpose, then adds technical detail about orbital periods and calendar alignment.

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 simple input (single number), full schema coverage, output schema exists, and annotations cover safety and idempotency, the description is complete for correct invocation.

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

Parameters4/5

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

Schema already has detailed parameter description for ageEarthDays (range, units, decimal allowed). Description adds context about return: ages for eight planets plus Pluto, based on orbital periods.

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 verb 'return' and specific resource: equivalent age in years on each of the eight planets plus Pluto. It distinguishes from sibling 'weight-on-other-planets' by focusing on age conversion.

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 use versus alternatives. The purpose is implied through the tool's function, but no when-not-to or alternative suggestions are provided.

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.
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, which inform the agent that the tool is safe and idempotent. The description adds the specific supported units, providing 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 a single, clear sentence that conveys the tool's purpose without any superfluous words. It is front-loaded and concise.

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

Completeness5/5

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

The tool is simple, with a well-defined input schema and an output schema present. The description, combined with the schema and annotations, provides complete information 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 input schema has 100% coverage with descriptions for all parameters. The tool description does not add additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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

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 (degree, radian, gradian, turn). It uses a specific verb 'Convert' and lists the exact resources, distinguishing it from sibling converter tools like area-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 Guidelines3/5

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

The description implies usage for converting angles but provides no explicit guidance on when to use this tool versus alternatives or any prerequisites. The purpose is clear, but no usage scenarios or exclusions are mentioned.

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

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=true (idempotent, non-destructive). Description adds value by explaining the output range and the mathematical relationship to tan(θ)=x. No contradictions.

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

Conciseness5/5

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

Three sentences, each necessary. First defines function, second explains range, third gives alternative. 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?

No output schema, but description implies return type (angle as number) and mentions units. For a simple math tool, this is sufficient. Could explicitly state return type, but not missing critical info.

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

Parameters4/5

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

Schema coverage is 100% with good descriptions. Description adds context about unit default and output range, going beyond schema. Baseline 3 plus extra 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?

Description clearly states it computes arctan(x) (inverse tangent) in degrees or radians, explains the output range (-90° to 90°), and distinguishes from two-argument arctan (atan2). Verb+resource+scope are all clear.

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?

Explicitly says when to use this tool vs atan2 ('use atan2 instead' for full-circle resolution). Also gives unit usage hints ('radians for math/physics, degrees for geometry/navigation/CAD').

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.
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, which convey safety and idempotency. The description adds the list of supported units, which is behavioral context not in annotations. It does not mention return format or precision, but with output schema present, this is sufficient.

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

Conciseness5/5

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

The description is a single sentence that efficiently communicates the purpose and supported units. No extraneous words or repetition of schema fields. It is front-loaded with the core action.

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 with a rich schema (100% coverage, enums, output schema), the description is adequately complete. It covers what the tool does and which units are supported. It does not explain conversion behavior (e.g., precision), but that is standard and implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 basic description (e.g., 'Source unit.'). The tool description adds the list of units, which is already present in the schema's enum. Thus, the description adds no meaningful semantics beyond the schema, earning a baseline 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: 'Convert between area units' and lists the seven supported units. It uses a specific verb 'Convert' and identifies the resource 'area units', which 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?

No explicit guidance on when to use or avoid this tool versus alternatives is given. However, given the naming and context (many sibling converters), the purpose is self-explanatory. A minimal viable score of 3 is appropriate; missing explicit context for when-not-to-use keeps it from higher.

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.
Behavior3/5

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

Annotations already declare readOnly/idempotent/destructive hints. Description adds that it returns simplified ratio and decimal, but doesn't disclose edge cases or limitations. Acceptable given annotations cover safety.

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: function + usage context. No wasted words, front-loaded with action.

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 full schema and output schema, description provides complete context. No missing information.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions. Description adds no additional parameter details beyond schema. Baseline 3 per instructions.

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 computes the simplified aspect ratio and decimal ratio. It distinguishes from sibling tools, which are other converters, and gives specific use contexts.

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?

Mentions useful contexts (image, video, screen, design) but lacks explicit when-not-to-use or alternative tools. Since no closely related siblings, 4 is appropriate.

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).
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 specific statistics computed, which is useful context but does not reveal additional behavioral traits beyond what annotations imply.

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

Conciseness4/5

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

The description is a single concise sentence that efficiently conveys the tool's purpose and outputs. No extraneous information; every word earns its place. Could be slightly more structured but is adequate.

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 output schema exists (so return format is documented elsewhere), the description sufficiently covers what the tool does. For a simple calculator tool with one parameter, it is complete: it specifies the statistics computed.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 description for the 'numbers' parameter. The tool description lists statistics but does not add deeper meaning or constraints beyond what the schema provides, so it meets the baseline without adding extra value.

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 verb 'Compute summary statistics' and the resource 'list of numbers'. It lists exactly which statistics are computed (count, sum, mean, median, min, max, mode(s)), distinguishing it from siblings like 'geometric-mean' or '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 description implies usage for summarizing numeric lists but does not provide explicit guidance on when to use this tool versus alternatives like geometric-mean or when not to use it (e.g., for single values). No when-not or exclusion criteria are given.

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

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 description does not need to repeat safety. The description adds value by stating 'UTF-8 safe', which informs about character encoding handling. This goes beyond 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 consists of two brief sentences. The first sentence establishes purpose, the second gives usage guidance. No unnecessary words; every sentence serves a clear 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?

Given the tool's simplicity, an output schema exists (as per context), so return values need not be described. The description covers encoding/decoding direction, UTF-8 safety, and the two parameters. It is 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?

Schema coverage is 100%, with both mode and input well-described in the schema. The description restates the mode enumeration and adds 'UTF-8 safe', but does not significantly augment the schema's parameter documentation. 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: 'Encode plain text to base64 or decode base64 back to text.' It specifies the verb (encode/decode) and resource (base64 text), and it is distinguished from sibling converters since no other tool handles base64.

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 when to use each mode: 'Use mode='encode' for plain→base64, mode='decode' for base64→plain.' This gives clear context for usage, though it does not mention when not to use the tool or alternatives. For a simple tool, this 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 indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that the tool returns results in decimal, hex, binary, octal, plus low-32-bit binary, and explains parsing rules. 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.

Conciseness4/5

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

The description is a single sentence that efficiently conveys the tool's purpose, operations, and output formats. It is well-structured and front-loaded, though it could be split into two sentences for slightly better readability.

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 and the presence of an output schema, the description adequately covers the return formats and parsing rules. It does not need to explain return values further. It is complete enough for an agent to use 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 has 100% description coverage with detailed parameter descriptions. The description reiterates the parsing logic and the role of 'b' but does not add significant new meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it runs bitwise operations (listing all ops) on BigInt operands and returns results in multiple formats. It is distinct from sibling tools which are other calculators/generators.

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 which operations are available and that 'b' is required for binary operations and ignored for NOT. It also explains parsing based on 'base'. However, it does not explicitly state when to use this tool vs alternatives, though siblings are all different tool types.

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. The description adds the computation formula and the definition of a board foot, providing behavioral context beyond the hints. No contradictions.

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

Conciseness5/5

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

Two sentences with no wasted words: first states purpose, second provides formula and definition. Information is front-loaded and efficiently presented.

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 and excellent schema coverage, the description fully covers the purpose, formula, and definition. No output schema exists, but return value is easily inferred. Complete with no gaps.

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

Parameters4/5

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

Schema coverage is 100%, and the description reinforces the formula. It adds practical context for thickness (nominal vs. actual) and examples, which supplements schema descriptions meaningfully.

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 explicitly states 'Compute board feet for lumber' with a precise formula and definition. The verb 'compute' and resource 'board feet' are specific, and the tool is clearly distinguished from numerous sibling 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 clearly indicates the tool is for computing board feet for lumber, implying its usage context. However, it does not explicitly state when not to use it or compare to alternative tools, though the niche purpose makes it clear enough.

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 cover safety (read-only, idempotent, non-destructive). Description adds that output is a copy-ready CSS string, which is helpful and consistent.

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: first captures purpose, second details layers and output. 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?

With full schema, annotations, and output type stated, all necessary information is present for the 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 covers 100% of parameters with clear descriptions. Description adds no extra parameter info beyond the schema.

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

Purpose5/5

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

Description clearly states 'Build a CSS box-shadow declaration from one or more shadow layers' with specific attributes, making purpose obvious and distinct from sibling tools.

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

Usage Guidelines4/5

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

No explicit when-not or alternatives, but context is clear: it's the tool for generating CSS box-shadow values.

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 (readOnlyHint, idempotentHint) are consistent. The description adds that it returns a health label benchmarked to SaaS funding-stage expectations, which is behavioral context beyond annotations. No contradictions.

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

Conciseness4/5

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

The description is two sentences and front-loads the main computation. It is concise but could be slightly more structured (e.g., bullet points). No superfluous 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?

Given the output schema exists, the description covers key inputs and behavior. It explains the optional revenue parameter's effect. Missing explicit examples or edge cases, but sufficient for an agent to use correctly.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds significant value: for ending_cash, it explains cash-positive scenario; for monthly_revenue, it clarifies how it affects gross vs net burn and when to omit it. This goes beyond parameter names and types.

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 computes gross burn, net burn, and runway for a startup, which is a specific verb+resource. It distinguishes itself from sibling calculators like loan-calculator or nps-calculator by focusing on startup financial 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 tells when to use the tool: given starting cash, ending cash, period, and optional revenue. It implies usage for financial analysis but does not explicitly state when not to use or suggest alternatives. The health label context provides extra guidance.

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 readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no new behavioral context beyond what the schema provides. It does not disclose any traits like pure transformation or handling of edge cases. With annotations covering safety, a score of 3 is appropriate.

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 efficiently communicates the core functionality. It is front-loaded with the action and lists the specific case options. No wasted words 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?

Given the output schema exists (as indicated by context) and the input schema is fully documented, the description adequately covers the tool's behavior. It specifies the transformation and case options, which is sufficient for a simple utility. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 both parameters (text and case). The description only restates the case types already defined in the schema. It does not add any new semantic meaning beyond what the schema provides, so a baseline of 3 is justified.

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 'Change the case of text' and lists four specific case options (UPPERCASE, lowercase, Title Case, Sentence case). This clearly identifies the tool's purpose and distinguishes it from siblings, as no other sibling tool handles case conversion.

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

Usage Guidelines4/5

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

Usage is implicitly clear given the unique purpose among siblings. However, the description does not explicitly state when to use this tool versus alternatives or when not to use it (e.g., for non-standard locale rules). The context of sibling tools provides enough differentiation, but explicit guidance is missing.

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 indicate readOnlyHint, idempotentHint, and destructiveHint (false). The description adds that it returns separate counts (with/without spaces) and references the 60k character cap, which is also in the schema but reinforces behavioral expectations.

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

Conciseness5/5

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

Two sentences, front-loaded with the core function and examples, no unnecessary 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?

Given the presence of an output schema and annotations, the description fully covers what the tool does and how to use it. The use case examples help an agent select it correctly among many text utilities.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'text'. The description does not add new semantic details about the parameter itself, only context for its use. 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 counts characters with and without spaces, and provides concrete use cases (tweet or SMS length checks). It distinguishes from siblings like word-counter and vowel-counter by focusing on character counting.

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 (e.g., checking if text fits Twitter or SMS limits). However, it does not explicitly mention when not to use it or alternatives, though the sibling tools list implies alternatives like word-counter.

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).
Behavior4/5

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

Annotations indicate read-only, idempotent, non-destructive. Description adds detail about returned fields (network, broadcast, etc.), but doesn't cover edge cases like invalid input.

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

Conciseness5/5

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

Single sentence that efficiently communicates the tool's function and outputs. 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?

With output schema present, description covers all expected return values. Provides complete picture for an IP calculator.

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

Parameters3/5

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

Schema coverage is 100%; description reinforces that 'cidr' or 'ip'+'mask' are alternatives. No new semantics beyond 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 clearly states it parses IPv4 CIDR or IP+mask, returning network details. Distinct from sibling tools like angle-converter or area-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?

Description explains when to provide CIDR notation or IP+mask. Lacks explicit 'when not to use', but context is clear given the tool's specific networking function.

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=true, idempotentHint=true, destructiveHint=false. The description adds behavioral context: it's a pure calculation that returns total spent, future value, and gap, with a non-moralizing tone. No contradictions.

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

Conciseness5/5

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

Two sentences with no wasted words. The first sentence explains the core comparison and formula; the second adds intent. Front-loaded and efficient.

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 (mentioned in context), the description adequately covers the tool's behavior. It's a simple calculator, and the description plus annotations provide complete guidance.

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

Parameters3/5

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

Schema description coverage is 100% with detailed parameter descriptions (e.g., drink presets with prices, fractional weeks). The description adds no new parameter-specific info, 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 purpose: comparing nominal cost of a coffee habit against invested future value. It specifies the calculation and outputs, distinguishing it from siblings like coffee-ratio-calculator or smoking-cost-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 for when to use the tool (to compare cost vs investment), but does not explicitly state when not to use it or name alternatives. The sibling set includes similar cost calculators, but the description's unique focus on compounding helps guide selection.

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.
Behavior5/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description aligns with this and adds that the tool returns recommended grind and brew time, providing extra behavioral context. No contradictions.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the purpose and followed by usage instructions. No unnecessary words.

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

Completeness4/5

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

Given the presence of a detailed output schema and well-documented input schema, the description covers the main functionality and extra outputs (grind, brew time). It lacks explicit mention of the 'ratio' overrides but is otherwise complete for a simple calculation tool.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema; it summarizes usage but does not elaborate on parameters like 'ratio' override or constraints. No extra value provided.

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 computes coffee-to-water ratios for specific brew methods. It uses a specific verb-resource pair ('Compute the coffee-to-water ratio') and lists the methods, distinguishing it from sibling tools like coffee-habit-cost-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 explains how to use the tool: pick a method, enter one variable, get the other. It does not explicitly mention when not to use or compare with alternatives, but the usage is straightforward given the list of sibling calculators.

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.
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 the important behavioral detail of auto-detecting input format, which is beyond annotation. No contradiction.

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

Conciseness5/5

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

Two sentences, no wasted words, front-loaded with the core action. Perfectly concise.

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

Completeness5/5

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

Given a single string parameter and an output schema (not provided but exists), the description fully covers what the tool does and how input is handled. No 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%, and the schema already lists accepted formats. The description reiterates auto-detection but adds little new semantic information beyond what the schema provides.

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

Purpose5/5

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

The description clearly states it converts colors between hex, RGB, HSL, and HSV, and auto-detects input format, distinguishing it from more specific sibling tools like 'hex-to-rgb'.

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 implicitly conveys when to use (when needing color conversion) but does not explicitly state when not to use or provide alternatives. No exclusion criteria mentioned.

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?

The description adds behavioral details beyond annotations: it computes next N fire times, accepts optional reference time for deterministic results, and limits computation count. This complements the readOnlyHint and idempotentHint annotations 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?

The description is two sentences long, front-loads the core purpose, and includes an example. Every sentence is informative and there is no wasted text.

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

Completeness4/5

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

The description covers the essential functionality for a parsing/computation tool. With an output schema present, the lack of detail about return values is acceptable. It could mention the output format briefly, but the annotations and high schema coverage fill the 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%, so the baseline is 3. The description restates the expression parameter with an example and implies the function of fromIso and nextCount, but does not add substantial new 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 the tool parses, describes, and computes next fire times for cron expressions. It specifies the exact input format and provides an example, distinguishing it clearly 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 explains the required input format and gives usage context with an example. It does not explicitly state when not to use or list alternatives, but the tool's purpose is self-contained and clear.

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.
Behavior5/5

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

The description explicitly states that conversions use binary (1024-based) sizing, which is key behavioral information. Annotations already indicate read-only and idempotent, so the description adds the specific binary sizing context. No contradictions.

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

Conciseness5/5

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

The description is extremely concise, only two sentences, front-loaded with the core purpose and the critical detail about binary sizing. Every sentence is necessary and 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 full schema coverage, existing annotations, and presence of an output schema, the description is complete. It covers all essential aspects: purpose, units, and the binary sizing convention.

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

Parameters4/5

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

Schema coverage is 100%, with descriptions for each parameter. The description adds value by listing units explicitly and reinforcing that from uses binary sizing, which is also in the schema description. Baseline is 3 due to full coverage, but the description provides additional clarity.

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 digital storage units and lists all supported units (bit, byte, kilobyte, megabyte, gigabyte, terabyte), distinguishing 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 mentions it uses binary (1024-based) sizing, which guides usage, but does not explicitly state when to use this tool versus alternatives (e.g., if a user wants decimal-based conversion, this tool is not appropriate). No exclusions or alternatives are provided.

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.
Behavior5/5

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

Beyond annotations (read-only, idempotent, non-destructive), the description adds that it returns weeks, months, years, and uses inclusive absolute difference, providing valuable behavioral context.

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

Conciseness5/5

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

Two concise sentences, front-loaded with purpose and followed by return details. 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?

Given the presence of an output schema and comprehensive annotations, the description covers all necessary context for 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?

Input schema already describes both parameters with 100% coverage. The description adds no new parameter information beyond restating that they are ISO 8601 dates.

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 calculates days between two ISO 8601 dates, which is specific and distinct from sibling converter/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?

It clearly states the tool calculates date differences, which is the primary usage context. No explicit alternative or when-not-to-use guidance is needed given siblings are unrelated.

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 readOnlyHint, idempotentHint, and destructiveHint, providing safety profile. The description adds behavioral details beyond annotations: order preservation and optional case-insensitive matching, which are not captured in annotations.

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

Conciseness5/5

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

Two concise sentences front-load the main action ('Remove duplicate lines') and include essential behavioral nuances (case-insensitivity, order preservation) 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?

Given the presence of an output schema, annotations, and full schema coverage, the description is sufficient. It covers purpose, key behaviors (case-insensitivity, order preservation), and implicitly the use case.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters fully. The description mentions case-insensitive matching but does not add new meaning beyond the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it removes duplicate lines from a text block, specifies optional case-insensitivity, and explicitly notes that order is preserved (not sorted). This distinguishes it from the sibling tool 'sort-lines' which sorts 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 clearly indicates the tool's purpose for deduplication and order preservation, implying when to use it. However, it does not explicitly mention when not to use it or directly compare with siblings like 'sort-lines', but the context of sibling tools provides sufficient differentiation.

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.
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds useful behavioral details about returned values (sale price, amount saved, discount percentage) 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.

Conciseness4/5

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

The description is a single clear sentence front-loading the action and results. Could be more structured but is efficient for a simple tool.

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

Completeness4/5

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

Given the low complexity (2 parameters, output schema exists), the description sufficiently explains the tool's function and output. No gaps for its 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?

Schema coverage is 100% with descriptions for both parameters. The tool description does not add new semantic meaning beyond the schema, so baseline score applies.

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

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 to a price and lists the returned values. It is specific and distinct from sibling tools 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 Guidelines3/5

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

No explicit guidance on when to use this tool vs. alternatives such as percentage-calculator or tip-calculator. Usage is implied but unclear for an agent needing differentiation.

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=true and idempotentHint=true, indicating safe, idempotent behavior. The description adds context about what the tool returns (final value, gains, CAGR, inflation-adjusted figures), which is complementary but not necessary given 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 concise, informative sentences. First sentence captures the core purpose, second lists outputs. 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?

Given the tool's complexity (optional inflation, lump-sum comparison) and presence of an output schema, the description adequately covers what the tool does and returns. All parameters are documented in schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter detail. 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 purpose: projecting DCA plan value and comparing with lump sum. It uses specific verbs like 'project' and 'compare', and lists outputs. This distinguishes it from siblings like NPV or loan calculators.

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 use this tool versus alternatives. While the purpose is clear, the description doesn't provide conditions for use or mention related tools like 'npv-calculator' or 'loan-calculator'.

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.
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, indicating safety and idempotence. The description adds beyond annotations by noting 'Each row is a consistent identity,' 'Public-domain data tables; pure JS; deterministic when a seed is passed,' providing extra behavioral context 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?

The description is three sentences, front-loaded with the primary purpose, and every sentence adds value. No wasted words.

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

Completeness5/5

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

Given the rich annotations and existing output schema, the description fully covers purpose, behavioral traits, and data source. It is complete for guiding use of this generator tool without missing critical context.

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

Parameters3/5

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

The schema has 100% description coverage, so the output format and field options are well-documented there. The description adds no new parameter semantics beyond the schema, fitting the baseline of 3.

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

Purpose5/5

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

The description starts with 'Generate tabular test fixtures (JSON or CSV) from a chosen mix of fake fields,' which has a specific verb and resource, clearly distinguishing it from sibling generators like passphrase-generator or uuid-generator. It explicitly covers the purpose of creating consistent test data.

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

Usage Guidelines4/5

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

The description implies usage for generating test data with consistent identities (e.g., first/last name match email) and notes determinism with a seed. It does not explicitly state when not to use or name alternative tools, but the context is clear enough for typical test data generation scenarios.

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 provide readOnly, idempotent, and non-destructive hints. The description adds value by enumerating the specific dates computed (Ash Wednesday, Palm Sunday, etc.) and mentioning the algorithm, which goes beyond annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and contains no unnecessary words. Every sentence adds 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?

Given the tool has an output schema (not shown), the description does not need to explain return values. It adequately covers purpose, year range, algorithm, and related dates, making it complete for a single-parameter calculator.

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

Parameters3/5

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

The schema description coverage is 100% as the 'year' parameter already has a description. The tool description does not add further meaning to the parameter, so it meets the baseline. No additional context is provided.

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 computes Western and Eastern Easter dates and related liturgical dates for a specified year range. It uses a specific verb 'compute' and resource 'Easter dates', distinguishing 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 implicitly indicates when to use (computing Easter dates) but does not explicitly state when not to use or compare to alternatives. The sibling list shows no similar tool, so the context is clear.

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

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.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description carries less burden. It does not add behavioral details but does not contradict annotations; overall sufficient for a simple conversion tool.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately communicates the tool's purpose. Every word adds value with no extraneous information.

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

Completeness4/5

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

Given the tool's simplicity, the description combined with schema and annotations covers the essential aspects. A minor addition about rounding or typical use cases could enhance completeness, but it is already well-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 descriptive label. The description only lists units, adding no extra meaning beyond what the schema already provides, meeting 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 clearly states the tool's function—converting between energy units—and lists the specific units supported, which distinguishes it from sibling converters for other physical quantities.

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 context (when you need energy unit conversion) but provides no guidance on when not to use it or alternatives; the sibling tools handle other domains, but this is not mentioned.

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.
Behavior5/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by detailing return values (simplified fraction, decimal, gcd, percentage) and the core action of simplification, providing full transparency beyond annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys purpose and output. Every word is essential; 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 existing output schema, the description is fully complete. It covers purpose, behavior, and return values, leaving no gaps for an agent.

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 describes both parameters with 100% coverage. The description adds that denominator must be non-zero, a constraint not fully captured in schema validation, thus adding meaningful context.

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

Purpose5/5

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

The description clearly states the tool simplifies a fraction to lowest terms and lists return values. It distinguishes itself from sibling tools (e.g., converters, 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 use for fractions but does not explicitly state when to use this tool instead of alternatives or provide exclusion criteria. Sibling tools vary widely, so more explicit guidance would be helpful.

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 declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that the tool also returns arithmetic mean, providing extra context beyond annotations.

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

Conciseness5/5

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

Two concise sentences with no wasted words; purpose and additional return value are 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?

Given low complexity, complete schema and annotations, and existence of output schema, the description provides all necessary context. No 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 a clear description of the 'numbers' parameter including constraints (positive, non-zero). Description adds no additional meaning beyond 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 clearly states 'Compute the geometric mean' and distinguishes from sibling tools like average-calculator by specifying the geometric mean and also returning the arithmetic mean for comparison.

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

Usage Guidelines4/5

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

Description implies when to use (computing geometric mean of positives) and implicitly contrasts with sibling average-calculator, but does not explicitly state when not to use or name alternatives.

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.
Behavior5/5

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

Goes beyond annotations by explaining that duplicate rule lines are dropped silently and that rules from multiple picks are merged. Output is described as 'file content ready to save'. 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?

Two sentences, front-loaded with purpose and inputs, followed by behavioral details. No fluff or repetition.

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

Completeness4/5

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

Covers merging, dedup, and output format. Missing error handling for invalid template IDs, but the tool is simple and schema provides validation. Output schema exists, relieving some descriptive burden.

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%, but description adds value by listing known template IDs and clarifying that at least one is required. This provides concrete examples beyond the schema's generic description.

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?

Clearly states the verb 'build' and resource '.gitignore file' with the method 'picking technologies'. There is no ambiguity, and it easily distinguishes 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?

Implies usage context (when you need a .gitignore file) but lacks explicit 'when not to use' or alternatives. Does not mention other approaches, but the sibling set makes it clear this is the only .gitignore tool.

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 indicate readOnly, idempotent, and non-destructive behavior. The description adds value by disclosing default heart rate (80 bpm) and breath rate (16 breaths/min), and listing return fields (heartbeats, breaths, minutes alive, days alive). No contradictions.

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

Conciseness5/5

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

The description is two sentences, front-loading the main purpose and inputs, then adding defaults and outputs. 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 tool's simplicity and the presence of an output schema, the description covers all key aspects: inputs (birthMs, nowMs), optional parameters with defaults, and return values (heartbeats, breaths, minutes alive, days alive). It is complete for its domain.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The description provides a high-level overview but does not add significant new meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool estimates heartbeats since birth using given timestamps and default or overridden heart rates. It specifies the verb 'Estimate' and resource 'heartbeats', and the unique purpose distinguishes 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 Guidelines3/5

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

The description implies usage when one needs to estimate heartbeats since birth, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it reference alternatives among sibling tools. It mentions default overrides but lacks explicit usage context.

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 indicate read-only and idempotent behavior, which aligns with a color conversion. The description adds specific input format details (accepts 3-, 4-, 6-, 8-digit hex with or without #), enhancing transparency 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 short sentences that convey all essential information. No redundant words, making it concise 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?

Given the tool's simplicity, the description is complete: it explains input format variations and the output type (RGB/RGBA). An output schema exists, so return values are covered. No gaps remain for this 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?

The single parameter 'hex' is fully described in the schema (100% coverage). The description adds no additional meaning beyond what the schema provides, 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 function: converting hex color to RGB and RGBA channel values. It uses a specific verb ('convert') and resource ('hex color to RGB and RGBA'). This distinguishes it from siblings like 'color-converter' which may be more generic.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., color-converter). There are no explicit when-to-use or when-not-to-use instructions, leaving an agent without context for selection.

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

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 indicate read-only and idempotent behavior. The description adds detail about return content (name, RFC, category, description, scenarios, mistakes) and sources, providing useful behavioral context beyond annotations.

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

Conciseness4/5

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

The description is a single sentence that front-loads the primary action. It is reasonably concise, though could be slightly shorter without losing meaning.

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

Completeness5/5

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

With an output schema present, the description does not need to detail return structure. It covers query formats, data sources, and the nature of results, providing complete context for a lookup 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 input schema has 100% coverage with a description for 'query'. The tool description further clarifies valid formats (code digits, category '4xx', free-text), adding 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 clearly states it looks up HTTP status codes, specifies sources (RFC 9110, IANA), and lists supported search types (code, category, free-text) and return fields. This distinguishes it from sibling calculator/utility 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 implies usage by stating the tool's function, but does not explicitly mention when to prefer it over alternatives or provide exclusions. The context of sibling tools makes it clear, but explicit guidance would improve score.

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?

Description contradicts annotations: annotations set readOnlyHint=true and destructiveHint=false, but description says calling it bans IP (destructive). This is a direct 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?

Single sentence, concise and front-loaded with critical warning. 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 zero-parameter honeypot tool with no output schema, the description is fully complete: it explains what it is and the consequence of calling.

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?

No parameters exist; description correctly omits parameter details. Baseline score 4 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 explicitly states 'Internal — do not call' and explains it is a honeypot that bans IPs. This clearly defines its purpose as a trap, distinct from sibling utility 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 directly instructs not to call it and warns of the consequence (IP ban), providing perfect usage guidance.

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.
Behavior4/5

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

Annotations indicate safe, idempotent operation. The description adds valuable context: direction asymmetry formula, return fields (severity band, recovery days, tips). No contradictions.

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

Conciseness5/5

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

Three focused sentences with front-loaded purpose and no unnecessary 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?

Given few parameters and output schema (not shown but referenced), description covers key behaviors, return content, and usage context completely.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 parameters with descriptions. The tool's description does not add further parameter details; baseline 3 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 clearly states the tool predicts jet-lag severity and recovery time between two time zones, including direction asymmetry. It is specific and distinguishes itself 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 Guidelines3/5

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

The description implies usage for jet-lag prediction but does not explicitly state when to use or not use this tool, nor mention alternatives among siblings. Minimal guidance.

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?

Description adds validation behavior and error reporting beyond annotations, which already indicate read-only, idempotent, non-destructive traits. No contradictions.

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

Conciseness5/5

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

Two concise, front-loaded sentences that directly convey the tool's purpose and key behavior without unnecessary 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 formatting tool, the description covers all essential aspects: formatting options, validation, and error handling. An output schema exists, so return value details are not 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 description mentions the two format modes but does not elaborate on the indent parameter beyond what the schema already provides. With 100% schema coverage, description adds marginal value.

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 formats JSON by pretty-printing or minifying, with validation. This distinguishes it from sibling utility tools that serve different purposes.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. Usage is implied by the tool's function, but alternatives among siblings are not addressed.

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?

The description adds critical behavioral information beyond annotations: it explicitly states that the tool does NOT verify the signature. This, combined with annotations (readOnlyHint, idempotentHint, destructiveHint), gives a full picture of side-effect-free inspection.

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 primary action and output. Every word adds value, and the structure is efficient.

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 complete for a low-complexity tool. It specifies the output (header and payload), warns about no verification, and the presence of an output schema covers return values. No 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 has 100% coverage and describes the token parameter adequately. The description does not add new semantic details beyond implying the token should be a JWT. 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 verb 'Decode', the resource 'JWT', and the output 'header and payload'. It also explicitly distinguishes from verification, ensuring the agent understands this is for inspection only.

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 provides explicit usage guidelines: 'use this for inspection only, never to trust the token's claims'. This clearly indicates when to use (inspection) and when not to (for trust), effectively differentiating from verification workflows.

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, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds no further behavioral traits beyond listing units, which is already in the schema. Since annotations cover the key behaviors, a score of 3 is appropriate.

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, clear sentence with no filler. It conveys the essential information efficiently.

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

Completeness4/5

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

Given the annotations and output schema (present but not provided), the description is mostly complete. It might omit handling of invalid units or edge cases, but for a simple converter, 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 coverage is 100% with descriptions for all three parameters (value, from, to). The description redundantly lists the units but adds no extra semantic meaning beyond the enum values. Thus baseline 3 is correct.

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

Purpose5/5

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

The description uses a specific verb 'Convert' and resource 'length units', listing all supported units (millimeter to mile). It clearly distinguishes from sibling tools like angle-converter or temperature-converter by domain.

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 for converting between any two listed length units. While it doesn't exclude other tools, the sibling tools are all for different domains (angle, area, etc.), so the context is clear enough without explicit exclusions.

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.
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety. The description adds that it uses the standard amortization formula and currency note, which provides minor extra context but no deeper behavioral details.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, no wasted words. Very concise and efficiently structured.

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

Completeness4/5

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

Given the complexity of loan calculations and the presence of an output schema, the description is mostly complete. It mentions the formula and currency. Minor missing details like compounding frequency or rounding, but overall 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?

Input schema has 100% description coverage for all three parameters. The description does not add meaningful new information beyond what the schema already provides, so score is at 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 clearly states what the tool computes: monthly payment, total interest, and total cost of a fixed-rate amortizing loan. It uses specific verbs and resource, distinguishing it from sibling 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 implicitly indicates usage for fixed-rate amortizing loans, but lacks explicit guidance on when not to use or alternatives. However, given the sibling tools are unrelated, this is adequate.

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 indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool is safe and read-only. The description adds value by detailing the return values (total cost, per-attendee breakdown, cost-per-minute, order-of-magnitude comparisons) and the calculator nature, reinforcing behavioral transparency.

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

Conciseness5/5

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

Two sentences, front-loaded with the main purpose, and no unnecessary words. Every part earns its place.

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

Completeness4/5

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

Given the high schema coverage (100%) and the presence of an output schema (implied by description), the description is complete enough. It covers inputs, outputs, and the calculation's purpose. Minor omission: no example usage, but not critical.

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

Parameters3/5

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

Input schema has 100% coverage with detailed descriptions for both parameters (attendees and duration_minutes). The description does not add significant new meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Calculate the total cost of a meeting' and lists specific outputs (total cost, per-attendee breakdown, etc.). It distinguishes from sibling tools like coffee-habit-cost-calculator and road-trip-cost-calculator by targeting meeting cost specifically.

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 does not explicitly state when to use this tool versus alternatives. However, the sibling tools are for different domains (e.g., coffee, road trip), so usage context is implied. No exclusions or alternatives are mentioned.

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 indicate safe, read-only, idempotent behavior. Description adds parsing support details (nested parentheses, hydrate dots) and output structure (per-element breakdown).

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 purpose, no unnecessary 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?

With output schema present, description adequately covers input format and output summary. Complete for a single-parameter tool.

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

Parameters4/5

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

Schema coverage is 100%, but description adds valuable details on element symbol notation and supported formats beyond the schema's basic description.

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?

Clearly states the tool computes molar mass from a chemical formula, using specific verb+resource. Distinguishes from sibling tools which are other calculators.

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?

Implied usage for computing molar mass but no explicit when-to-use or when-not-to-use guidance. No alternatives mentioned.

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.
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and idempotency. The description adds no extra behavioral details (e.g., handling of zero totals, rounding). It is adequate but not enhanced 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, front-loaded sentence with no superfluous words. Every word adds value: action, resource, and two input methods.

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 has an output schema and comprehensive parameter descriptions. The description covers the essential purpose and input modes. It does not mention NPS range (-100 to 100) but the output schema likely provides that. Slightly lacking in full context for a standalone description.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described. The description reinforces the two input modes but adds no semantic detail beyond the schema. Since schema coverage is high, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description explicitly states the tool computes NPS from two distinct input methods (counts or raw array), using specific verb 'Compute' and resource 'Net Promoter Score'. It clearly distinguishes from sibling calculator tools like average-calculator or npv-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 indicates two usage modes: from aggregated counts or raw scores. While it implies the trade-off between modes, it does not explicitly state when to prefer one over the other or when not to use the tool. However, given the tool's simplicity, it's fairly clear.

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.
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by detailing the return values (NPV, Accept/Reject decision, IRR, per-period PV breakdown), which are not in the annotations. No contradictions.

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

Conciseness5/5

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

The description is extremely concise, consisting of two sentences. The first sentence states the core function, and the second lists the outputs. No unnecessary words, and 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.

Completeness4/5

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

For a calculator tool with a present output schema, the description covers the key inputs and outputs. It does not mention edge cases or rate limits, but the annotations cover safety. Overall, sufficiently complete 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?

Schema description coverage is 100%, with each parameter already having a clear description. The tool description does not add additional meaning beyond the schema, which is acceptable. 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 clearly states the tool computes NPV and IRR for cashflows, using a specific verb ('Compute') and resource ('Net Present Value and Internal Rate of Return'). It distinctly identifies the tool's purpose, and there are no sibling tools with overlapping functionality, so differentiation is implicit.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., loan-calculator or nps-calculator). Usage context can be inferred from the financial nature, but no when-not or alternatives are mentioned.

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, so the agent knows it's a safe, idempotent read. The description adds behavioral details beyond annotations: lowercasing and stripping non-alphanumeric characters, which is not in the input schema. This gives the agent a precise understanding of the transformation.

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

Conciseness5/5

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

The description is two sentences, front-loading the purpose ('Test whether a word or phrase is a palindrome') and then providing the algorithm. No unnecessary words; every sentence adds 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?

Given the low complexity (one parameter, straightforward logic) and presence of an output schema, the description sufficiently covers the tool's behavior. It explains the normalization and comparison logic, which is all an agent needs to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100% with one parameter 'text' described as 'Word or phrase to test.' The description adds meaning by explaining the preprocessing steps (lowercasing, stripping non-alphanumeric) and that the input is compared to its reverse, which is not in the schema description. This helps the agent understand the exact 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 tests whether a word or phrase is a palindrome, specifying the verb 'test' and the resource. It also explains the algorithm (lowercase, strip non-alphanumeric, compare to reverse), which 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 Guidelines3/5

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

The description explains what the tool does but does not provide explicit guidance on when to use it versus alternatives. Since sibling tools are all different (e.g., angle-converter, word-counter), confusion is minimal, but no when-to-use or when-not-to-use context is given.

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.
Behavior3/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior; the description adds no extra behavioral context beyond the return values.

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?

Single, well-structured sentence that front-loads the main purpose and mentions return values without unnecessary 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?

Given an output schema exists, description sufficiently covers purpose and returns; no gaps for a generator tool.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3; description does not add additional meaning to parameters beyond what schema provides.

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

Purpose5/5

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

Clearly states it assembles a Diceware-style passphrase from a list of words, distinguishing it from sibling tools like password-generator which generates random passwords.

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 use this vs alternatives like password-generator; usage is implied but not differentiated.

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 indicate readOnly, idempotent, non-destructive behavior; description adds the detail that it uses crypto.getRandomValues, confirming strong cryptographic randomness for passwords.

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

Conciseness5/5

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

Two sentences with immediate purpose statement and no extraneous information, perfectly 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?

Given the simple tool, full schema coverage, output schema exists, and annotations cover safety, the description adds the cryptographic guarantee and is fully complete for agent 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?

With 100% schema description coverage, the description merely groups parameters (uppercase/lowercase/numbers/symbols) without adding deeper semantic 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?

Clearly states 'Generate cryptographically random passwords' with specification of caller control over character classes, differentiating it from sibling tools like uuid-generator and random-number.

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 generating passwords with control over character classes and cryptographic strength, but does not explicitly mention when not to use or compare to alternatives.

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.
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe, read-only behavior. The description adds context on the three calculation modes but does not introduce behavioral surprises.

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 front-load the main purpose and then detail the modes. No extraneous 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, and description, schema, and annotations together fully cover purpose, parameters, and behavior. Output schema exists so return format is documented elsewhere.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all parameters. The description adds value by explaining the meaning of parameters relative to each mode, going beyond schema details.

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

Purpose5/5

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

Description explicitly states the tool calculates percentages in three distinct modes: 'of', 'ratio', and 'change'. It clearly distinguishes from sibling conversion/calculation tools on the same server.

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 provides clear guidance on when to use each mode with examples like 'Use mode='of' for the first form'. It eliminates ambiguity for the agent.

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 description states 'Convert' which aligns with the non-destructive nature indicated by annotations. It adds no behavioral detail beyond what annotations already provide (readOnlyHint, destructiveHint, idempotentHint). There is no contradiction, but no added value.

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

Conciseness5/5

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

A single, clear sentence front-loads the verb and resource, including a comprehensive unit list. Every word serves a purpose without redundancy.

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

Completeness5/5

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

For a straightforward conversion tool with complete schema coverage and annotations, the description sufficiently names the operations and supported units. Output schema handles return format, and no additional context 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?

Schema description coverage is 100%, so baseline is 3. The description lists the units already enumerated in the schema, adding no additional semantic context beyond the schema's own 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 clearly states the tool converts between pressure units, listing all supported units explicitly. It distinctly separates pressure-converter from sibling tools like angle-converter or temperature-converter, which serve different domains.

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 does not provide explicit usage guidance such as when to use or avoid. However, the tool's purpose is self-explanatory and siblings are distinct converters, so no direct competition. The annotations (readOnlyHint, idempotentHint) hint at safe use, but the description could include a brief note on appropriate scenarios.

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 the tool as read-only, idempotent, and non-destructive. The description adds that it returns both a primality verdict and prime factorization, providing extra behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is a single sentence that front-loads the purpose and concisely adds the return value details. Every word contributes meaning; no waste.

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, deterministic tool with a single parameter and an existing output schema, the description fully covers the necessary context: input constraint, behavior, and output content.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 parameter n (type, constraints, and purpose) with 100% coverage. The tool description does not add any further semantic meaning to the parameter.

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

Purpose5/5

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

The description clearly states the action ('test'), the resource ('integer ≥ 2'), and the purpose ('is prime'). It also specifies the output (verdict and prime factorization), distinguishing it from sibling tools which are unrelated.

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 usage context by specifying the input constraint (integer ≥ 2) and the nature of the output. However, it does not explicitly state when to use or avoid using the tool, though no alternative prime-checking tools exist among siblings.

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.
Behavior4/5

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

Annotations indicate readOnly, idempotent, non-destructive. Description adds that it returns recommendations based on scientific references, which is useful context beyond annotations.

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

Conciseness5/5

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

Two sentences, no filler, front-loaded with purpose and key inputs/outputs. Highly concise and well-structured.

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

Completeness4/5

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

Tool has output schema (stated in context), so return values are documented. Description covers inputs, outputs, and references. Missing: edge cases or error handling, but acceptable for a calculator.

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

Parameters3/5

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

Input schema has 100% description coverage. Description does not add parameter details but states the overall function. Baseline 3 per guidelines.

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 computes daily protein in grams/day and grams/kg from weight, activity, and goal. Unique among sibling tools which are mostly converters or other calculators.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance, but no competing sibling tool exists. References provided but not alternatives. Minimal guidance.

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.
Behavior4/5

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

Adds important behavioral info beyond annotations: mentions non-crypto-strong nature and default integer behavior. Annotations already declare readOnlyHint and idempotentHint, so description complements well.

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 covering purpose, defaults, and limitation. No unnecessary 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?

Output schema exists, so return values not needed. Description covers input bounds, type, count limit, and cryptographic weakness – complete for this simple 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 includes defaults for count and integer. Description adds minimal extra: clarifies [min, max] inclusive and reinforces max count per call. Baseline 3 appropriate.

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

Purpose5/5

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

Clearly states verb 'generate' and resource 'random numbers' with bounds [min, max] and integer/float option. Unambiguous and distinct from sibling tools.

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

Usage Guidelines3/5

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

Implies use for non-cryptographic randomness via 'Math.random() (not crypto-strong)', but does not explicitly state when to use vs alternatives like password-generator or uuid-generator.

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
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context on how it handles different quantity formats (fractions, decimals, ranges) and what passes through unchanged (e.g., 'to taste'). 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 very concise: two sentences that front-load the purpose and then provide necessary details. Every sentence adds value, 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?

Given the tool's moderate complexity, full schema coverage, and presence of an output schema, the description covers all necessary aspects: purpose, behavior, parameter semantics, and limitations. No gaps.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining the ingredient format with examples, clarifying that lines without parseable quantities pass through, and providing examples for serving parameters.

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 scales recipe ingredient quantities to a new serving count. It specifies the verb 'scale' and the resource 'recipe ingredient quantities', and distinguishes itself from unit converters by explicitly stating it does not convert units.

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 this tool: to scale a recipe's ingredients to a different serving count. It also clarifies what it does not do (no unit conversion). While no explicit alternatives are given, the context is clear.

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

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.
Behavior4/5

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

Annotations already indicate readOnlyHint (true) and destructiveHint (false). The description adds context about default global behavior and output details (positions, groups) beyond annotations. No contradictions.

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

Conciseness5/5

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

Two sentences, no unnecessary words, front-loaded with purpose. Every sentence provides useful information.

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

Completeness4/5

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

Given the presence of an output schema (inferred), the description adequately covers the main behavior: output includes matches, positions, groups. It does not cover error handling, but that is acceptable for a utility 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?

Input schema has 100% description coverage for all 3 parameters. The description adds value by clarifying the default 'g' flag behavior and the nature of the operation. This exceeds the baseline of 3.

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

Purpose5/5

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

The description clearly states 'Test a JavaScript regex against text' and specifies the output includes matches, positions, captured groups, and named groups. This is a specific verb-resource combination that distinguishes it from sibling tools like converters and 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 explains that default global flag finds all occurrences, which guides usage for exhaustive matching. It does not explicitly exclude alternatives, but given unrelated siblings, this is sufficient. Could be improved by mentioning when to use flags parameter.

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).
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 practical context (default 16px base, optional override) without contradicting structured data.

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 front-load the purpose and key detail (default base). No superfluous 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 conversion tool with a full input schema and an output schema (not shown but present), the description covers all needed context: purpose, default, and optional parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 parameters have descriptions). The description reiterates the default base but adds no new meaning beyond what the schema already provides. 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 clearly states the verb 'Convert' and the resource 'REM to pixels', specifying the default base and the optional base_px parameter. It distinguishes itself from sibling converters (e.g., length-converter) by focusing on REM units.

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 indicates when to use (when needing REM->PX conversion) but does not explicitly contrast with alternatives. However, given the narrow focus, the context is clear enough for an agent.

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 indicate read-only and idempotent behavior. The description adds details about Unicode handling and internal implementation (Array.from), providing extra transparency 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?

Two sentences, front-loaded with the core action and key feature (Unicode-aware), no unnecessary 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 text reversal tool, the description covers behavior, the schema fully documents the parameter, and an output schema exists. No gaps.

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

Parameters4/5

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

The schema has 100% coverage with a description for the parameter. The tool description further explains the reversal is character-by-character and Unicode-aware, adding 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 it reverses a string character-by-character and is Unicode-aware, which is specific and distinguishes it from sibling tools that are converters or 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 gives clear context for when to use it (reverse text), and sibling tools are unrelated, but no explicit exclusions or alternatives are mentioned.

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.
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read. The description adds that it returns total cost, fuel subtotal, per-person split, and cost per unit, which provides some output context but no unexpected behaviors.

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-loading the purpose and listing key outputs. Every sentence is essential, with no wasted words.

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

Completeness4/5

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

Given the 11 parameters, 4 required, and presence of an output schema, the description covers the main components and unit support. It could briefly mention default behaviors (e.g., defaults for optional fields) but overall is nearly complete.

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

Parameters5/5

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

All 11 parameters have descriptions that go beyond schema types, explaining units, defaults, and how values combine (e.g., food_per_day × travelers × duration_days). The schema coverage is 100%, and the descriptions add significant meaning, such as the tolls description clarifying its role in the fuel subtotal.

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 estimates total road trip cost from multiple components (fuel, lodging, food, etc.) and returns detailed breakdowns. It distinguishes itself from sibling calculators like 'travel-budget-calculator' by being road-trip-specific with fuel economy and lodging logic.

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

Usage Guidelines3/5

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

The description implies use for road trip cost estimation but does not explicitly state when to use this versus alternative sibling tools like 'travel-budget-calculator' or 'coffee-habit-cost-calculator'. No when-not or alternative guidance is provided.

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 indicate read-only, idempotent, non-destructive. The description adds default schedule (40-hour, 52-week) and output types (hourly, daily, weekly, monthly), which provides useful context beyond annotations. No contradictions.

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

Conciseness5/5

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

Single sentence directly states purpose and defaults. No unnecessary words; optimal length.

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 output schema present, description doesn't need to detail return values. It covers conversion types and defaults. Param descriptions handle other details. Complete for this simple conversion tool.

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

Parameters4/5

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

Schema description coverage is 100% with clear descriptions. The description adds context about the output (daily and monthly equivalents) that isn't in param descriptions, raising it above baseline 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 it converts an annual salary to hourly, daily, weekly, and monthly equivalents, with clear verb 'Convert'. It distinguishes from sibling converters by specifying salary conversion, which no other sibling does.

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

Usage Guidelines3/5

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

No explicit instructions on when to use this tool versus alternatives. The description implies its use for salary conversion but doesn't provide when-not or contrast with similar tools like tip-calculator. Given its clear domain, it scores at the middle.

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 indicate readOnlyHint=true and idempotentHint=true, signaling safety. The description adds return types but no additional behavioral details such as error handling or 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?

The description is a single concise sentence that front-loads the primary action and outputs. 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?

Given the tool's low complexity and full schema coverage with annotations, the description adequately explains the return values. It lacks explanation of edge cases (e.g., zero) but is otherwise complete with the presence of an output schema.

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

Parameters3/5

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

Schema coverage is 100%, both parameters have descriptions. The tool description adds no further meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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

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 numbers to scientific and engineering notation, specifying the returned outputs (coefficient, exponent, human-readable forms). This verb+resource description distinguishes it from sibling tools like angle-converter or fraction-simplifier.

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 numeric notation conversion but does not explicitly state when to use it versus alternatives, nor does it provide exclusions or preconditions. The context of sibling converter/calculator tools makes the purpose clear, but no direct guidance is given.

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

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 indicate read-only, idempotent, non-destructive. Description adds UTF-8 encoding and hex output format, enhancing transparency.

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

Conciseness5/5

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

Two concise sentences, no wasted words. Core information 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 single-param tool with clear annotations, the description fully covers purpose, input encoding, and output format. No output schema 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 covers 100% of parameter with description. Tool description adds encoding detail but does not add significant new semantics.

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

Purpose5/5

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

Description clearly states the action (compute), resource (SHA-256 hash of text), and output (64-character hex string). It uniquely identifies the tool among siblings like angle-converter or word-counter.

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?

Description implies use when a SHA-256 hash is needed. No explicit exclusion, but siblings are diverse so context is clear.

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.
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, indicating safe behavior. The description adds the educational context and details about return values, which goes beyond what annotations convey.

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 paragraph of three sentences that front-loads the purpose, lists outputs, and adds a caveat. Every sentence is informative, 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?

Given that an output schema exists, the description adequately covers purpose, input semantics, and usage caveats. It provides a complete picture for a simple calculator tool.

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

Parameters4/5

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

Schema description coverage is 100%. The description adds extra guidance beyond the schema, such as ordering of actual_hours (most recent last) and qualification for target_hours (should reflect rested amount). This adds meaningful context.

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

Purpose5/5

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

The description clearly states the tool computes cumulative sleep debt over 7 nights given a personal target. It lists specific outputs (total debt, per-night deficits, worst night, recovery estimate), making the purpose distinct from sibling 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 Guidelines3/5

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

The description includes an educational caveat ('Educational only — does not replace clinical sleep assessment'), which implies appropriate use. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions.

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).
Behavior4/5

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

Annotations indicate readOnlyHint=true and destructiveHint=false, which the description reinforces by focusing on computation without side effects. The description adds details about return values and defaults, providing transparency beyond annotations.

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

Conciseness5/5

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

The description is concise at three sentences, front-loading the main purpose and calculation, followed by outputs and defaults. Every sentence adds essential information without 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 presence of an output schema (as per context signals) and detailed parameter descriptions, the description covers all necessary aspects: inputs, outputs, defaults, and context (US averages, CDC reference). It is fully adequate for an AI 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.

Parameters5/5

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

Schema coverage is 100% with detailed descriptions for each parameter. The description adds value by explaining defaults, examples (e.g., pack-a-day habit, NYC costs), and the optional nature of annual_return_percent, enhancing understanding 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 computes the lifetime cost of a smoking habit and compares it to investment growth. It specifies the outputs (total spent, annual spend, invested future value, opportunity-cost gap) and distinguishes itself from similar tools like coffee-habit-cost-calculator by focusing on smoking.

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 context for when to use the tool (e.g., 'Compute the lifetime cost') and includes default values for typical US scenarios. However, it does not explicitly state when not to use it or compare it to alternatives, but the purpose is clear for a calculator tool.

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=true and idempotentHint=true. Description adds option details but no additional behavioral traits 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?

Single sentence, 11 words, front-loads the verb and noun. No waste.

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 sorting tool with full schema coverage and an output schema, the description covers all necessary aspects: action, options, and constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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%. Description lists options (ascending/descending, dedupe, case-insensitive) which matches schema properties, but adds little meaning beyond the schema's own 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?

Description clearly states 'Sort the lines of a text block' with specific options (ascending/descending, dedupe, case-insensitive). Distinct from sibling 'dedup-lines' which only deduplicates.

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 use over siblings like 'dedup-lines'. The purpose is clear, but the description lacks explicit when-to-use or when-not-to-use advice.

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 the tool as read-only, idempotent, and non-destructive. The description adds no behavioral traits beyond the conversion operation, but the annotations carry the burden of transparency.

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

Conciseness5/5

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

The description is a single, concise sentence (12 words) that front-loads the action and resource, with no unnecessary 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?

With full schema coverage, annotations, and an existing output schema, the description provides all necessary context: the conversion action and the complete list of units. No 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 has 100% description coverage for all three parameters. The description lists the units but does not add meaningful information beyond what is in the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Convert') and the resource ('speed units'), listing all supported units (km/h, m/s, mph, knots, ft/s), making it distinct from sibling conversion tools.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool or when not to, nor does it mention alternatives. Usage is implied by the domain (speed) and sibling context, but no direct guidance is provided.

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

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 readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds that the tool returns all four computed values, which is behavioral context beyond annotations. However, it doesn't discuss edge cases like negative inputs, though the schema addresses that.

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

Conciseness5/5

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

The description is two concise sentences: first stating the action, second explaining the benefit. No wasted words, front-loaded with 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?

Given the output schema exists (so return values are documented), the description is complete. It covers purpose, benefit, and the tool's composite nature. Annotations and schema 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 schema already describing parameter 'n' (non-negative for square root). The description does not add further semantics; 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 computes square root, cube root, square, and cube of a number. This specific verb+resource combination distinguishes it from sibling tools, especially by noting it returns all four operations in one call, avoiding multiple tool invocations.

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 the tool is for when you need any of these four operations, with the bonus of avoiding multiple calls. While it doesn't explicitly state when not to use, the context of sibling tools (none provide these individual operations) makes the usage clear.

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 provide readOnlyHint and idempotentHint, so the description adds minimal behavioral info. It doesn't detail output format or edge cases, but annotations cover safety.

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, clear sentence with no wasted words. Information is front-loaded.

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

Completeness4/5

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

Given the tool's simplicity, full annotations, and output schema, the description is adequate. It could mention precision or return format, but not essential.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents parameters. The description does not add any extra meaning beyond 'Convert between...', thus baseline score.

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 function: converting between Celsius, Fahrenheit, and Kelvin. This clearly distinguishes it from sibling tools 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 instructs to 'Pass value + from + to', which implies basic usage. While it doesn't explicitly state when not to use, the tool's name and context among other converters make alternatives obvious.

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 indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which the description does not contradict. The description adds context that the output is a starting template and not legal advice, aligning with the read-only and non-destructive nature.

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

Conciseness5/5

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

The description is four sentences, front-loaded with the tool's purpose, and concise. Every sentence adds value: defining inputs, output, and the non-legal disclaimer.

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 11 parameters fully described in the schema and an output schema present, the description provides sufficient context about the output format and the template's preliminary nature. No further details are needed for a generator tool of this complexity.

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

Parameters3/5

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

Schema coverage is 100% with each parameter having a clear description. The description enumerates inputs (company name, website, etc.) but does not add meaningful semantics beyond the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool assembles a Terms of Service document from specified inputs and produces a complete plain-text document plus section headings. It is distinct from all sibling tools, which are calculators, converters, and other generators.

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 (to generate a TOS template) and includes a disclaimer that it is not legal advice and requires attorney review. It does not explicitly state when not to use it (e.g., for legal contracts requiring custom drafting).

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.
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive. Description adds the FLSA convention and calculation logic, providing useful behavioral context beyond annotations.

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

Conciseness5/5

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

Two sentences, no unnecessary words, front-loaded with purpose. Efficiently communicates all necessary 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 simple tool, complete description of inputs, calculation, and convention. No output schema needed; agent can infer return value. Well-rounded.

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%, but description adds value by noting default values for regular_hours (40) and overtime_hours (0), and explaining the overtime threshold. This enhances parameter understanding.

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 computes time-and-a-half overtime rate and gross pay, specifying the FLSA convention. It distinguishes from sibling calculators like salary-to-hourly by focusing on overtime 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?

Description implies usage for US overtime calculations per FLSA, but does not explicitly state when not to use or mention alternatives. However, the context is clear enough for most agents.

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 indicate readOnlyHint=true and idempotentHint=true. Description adds value by noting the engine is currency-agnostic ('doesn't care about currency codes'), which is a key behavioral trait. 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?

Two short sentences, front-loaded with purpose, then a clarifying note. 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.

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 an output schema, the description covers the core functionality and critical behavior (currency agnostic). No gaps 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?

Schema description coverage is 100%, so baseline is 3. Description does not add significant meaning beyond schema; it reinforces that all amounts use same currency, but that is already implied.

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 computes tip, total, and per-person split for a bill. Specific verb+resource distinguishes it from sibling tools like 'percentage-calculator' and '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 Guidelines2/5

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

No guidance on when to use this tool vs. alternatives such as 'percentage-calculator' or 'loan-calculator'. The description only states what it computes, not in what scenarios it is appropriate.

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
Behavior5/5

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

Annotations indicate readOnlyHint=true and destructiveHint=false, confirming no side effects. The description goes further by disclosing that the tool 'picks sane per-destination defaults... from a mid-2025 Numbeo-style reference table when a cost isn't provided.' It also details output components ('Returns total, per-person, daily average, and a category breakdown'). This provides full behavioral context beyond annotations.

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

Conciseness5/5

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

The description is two sentences with no extraneous information. It front-loads the core purpose ('Estimate the total cost of a trip') in the first sentence, then adds key details in the second. Every clause serves a purpose, achieving high information density with brevity.

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 moderate complexity (9 parameters, 4 required) and the presence of an output schema, the description covers all necessary context: parameter defaults, output structure, and the optional buffer. It does not need to explain return values because the output schema exists. The description is complete for an AI agent to understand the tool's capabilities.

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

Parameters5/5

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

Schema description coverage is 100%, but the tool description adds significant value by explaining default behavior for missing parameters ('when a cost isn't provided'), the source of defaults ('Numbeo-style reference table'), and the purpose of the emergency buffer. This contextualizes the parameters beyond their individual schema descriptions.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Estimate the total cost of a trip from flights, lodging, food, activities, ground transport, and an optional emergency buffer.' It specifies a specific verb ('estimate') and resource ('total cost of a trip'). Unlike sibling calculators (e.g., 'loan-calculator', 'coffee-habit-cost-calculator'), this tool focuses on travel budgeting with multiple categories, making it distinct 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 implies usage for trip planning but does not explicitly state when to use this tool vs. alternatives. It mentions per-destination defaults and the ability to provide custom costs. Since sibling tools are all different calculators, the context is clear enough, but explicit 'when to use' or 'when not to use' instructions are absent.

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.
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds behavioral context: returns results for each row plus sub-expression values, supports up to 6 variables (64 rows). It does not specify error handling, but the conditional safety is clear. 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 totaling ~70 words, with no filler. The purpose is stated upfront, followed by operators, algorithm summary, and constraints. Every sentence adds value.

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

Completeness4/5

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

The description covers input constraints, operator set, output structure (rows + sub-expressions), and limits (6 variables). It is sufficient for an agent to understand the tool's capability. Minor omissions: precedence rules, parentheses handling, and error messages. But given the presence of an output schema (context signals), the description is reasonably complete.

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%, giving a baseline of 3. The description enriches the 'expression' parameter by detailing specific operators, symbols, variable constraints (≤ 8 chars), and maximum distinct variables (6). This goes beyond the schema description, which only lists operators and symbols superficially.

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 clear verb and resource: 'Generate the full truth table for a Boolean expression.' It then lists supported operators, symbols, and output details (all variable assignments, sub-expression values), distinguishing it from sibling tools (which are mainly calculators, converters, and generators).

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 Boolean analysis but provides no explicit guidance on when to use versus alternatives, nor any prerequisites or exclusions. Since there is no direct sibling for truth tables, the lack of alternative references is acceptable, but the description could still state ideal scenarios (e.g., 'Use this to evaluate logical expressions').

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.
Behavior5/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the significant behavioral detail that encoding follows 'RFC 3986 component encoding (encodeURIComponent semantics)', which clarifies exactly how the encoding works. No contradictions.

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

Conciseness5/5

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

The description is a single sentence that conveys all essential information: the tool's purpose and the encoding standard. It is front-loaded with the key action and resource, leaving no room for 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 simplicity of the tool (encode/decode with string input and output schema), the description fully covers the necessary context. It states both modes and the encoding standard, which is sufficient for correct usage. The presence of an output schema means return values are already documented.

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

Parameters5/5

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

The input schema already provides clear descriptions for both parameters (mode with enum, input with maxLength). The description adds the encoding standard context, further clarifying the behavior of the mode parameter. With 100% schema coverage, the description complements well.

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 'URL-encode or URL-decode a string' with the specific verb and resource. It also specifies 'RFC 3986 component encoding (encodeURIComponent semantics)', which distinguishes it from any other URL-related tools like url-parser. The tool name matches the purpose exactly.

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 for encoding/decoding strings for URLs, and the sibling tools context provides alternatives (e.g., base64, jwt-decoder). However, it does not explicitly state when not to use this tool or mention specific alternatives, so it lacks complete exclusion guidance.

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, providing a safe read operation profile. The description adds that it returns components, but does not disclose error handling for malformed URLs or partial inputs. Without additional behavioral context, the description meets minimum requirements but lacks depth for 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 sentences with no wasted words. Directly states purpose and output. Front-loaded with action verb and resource. Each 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?

Given the tool's simplicity (one parameter, no nested objects, clear annotations), the description is adequate. It explains what the tool does and the output format. Minor omission: no mention of return type structure beyond query map, but output schema likely covers this. Score 4 for being nearly 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%: the single 'url' parameter is described as 'The URL to parse. Must include the protocol (http:// or https://).' The tool description reinforces that parsing produces components, but does not add new semantics beyond the schema. Baseline of 3 is appropriate.

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

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: parsing a URL into components (protocol, host, port, path, query parameters, hash) and returning query string as key-value map. This is a specific verb+resource that distinguishes it from sibling utilities like url-encoder or other converters.

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 does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. However, the purpose is straightforward, and the intended use is implied by the description of parsing URL components.

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 declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by specifying the return format (array of strings) and the behavior for single UUIDs, which is beyond what annotations provide. No contradictions.

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

Conciseness5/5

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

Two sentences with no redundant information. Every sentence adds value: first states purpose, second clarifies return type and behavior. Very concise and 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 tool's simplicity (single parameter, strong annotations, and an output schema exists), the description is complete. It covers purpose, return format, and guidance on parameter (implied by 'one or more'), leaving no 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?

Schema coverage is 100% and the parameter 'count' is fully described with min, max, and default. The description does not add additional meaning or constraints beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool generates RFC 4122 v4 UUIDs (random) and returns an array of strings. It distinguishes itself from siblings like random-number or password-generator by specifying the UUID standard and return format.

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 that it generates one or more UUIDs and that the return is always an array, which guides usage. However, it does not explicitly mention when not to use it or provide alternatives, but the context of simple utility tools makes the usage 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. The description adds no extra behavioral context beyond the conversion purpose, so it meets the baseline but adds no additional 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?

The description is a single sentence that directly conveys the tool's purpose and supported units with no redundant information. It is appropriately front-loaded and concise.

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

Completeness5/5

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

Given the tool's simplicity, annotations covering safety, complete schema with descriptions, and an output schema, the description provides sufficient information for an agent to correctly invoke the tool. No 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 coverage is 100% with clear descriptions for each parameter. The description lists the units already present in the schema enums, adding no meaningful extra meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states it converts volume units and lists all supported units, making the verb and resource specific. The unit differentiation is sufficient given sibling tools are for other quantities.

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 does not provide explicit when-to-use or when-not-to-use guidance. Usage is implied by the tool's purpose, but no explicit alternatives or exclusions are mentioned.

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

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, destructiveHint=false. Description adds ASCII-only constraint and specifies exact outputs (counts and ratio). No contradictions.

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

Conciseness5/5

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

Two concise sentences front-loading key information: what it does, constraints, and outputs. 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?

With output schema present, the description covers purpose, input constraints, and return values. No missing elements for a simple tool.

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

Parameters3/5

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

Schema coverage is 100% with a single parameter 'text' described as 'Text to analyze.' Description doesn't significantly add beyond schema, but clarifies ASCII-only handling. 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?

Clearly states it counts vowels and consonants, distinct from sibling tools like character-counter or word-counter. Specific verb 'Count' with clear resource 'vowels and consonants in 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?

Explicitly states ASCII-only and handles English-style letters, implying usage for English text and non-use for non-ASCII. Could be stronger by directly mentioning when not to use, but still clear enough.

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 indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat those. However, the description adds no additional behavioral context (e.g., precision, rounding, or error handling) beyond the basic conversion action.

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 action ('Convert between common weight units') and immediately lists the supported units. Every word is necessary.

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

Completeness5/5

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

Given the tool's simplicity, full schema coverage, output schema presence, and informative annotations, the description provides sufficient context for an agent to correctly 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 has 100% description coverage, so the schema already documents the three parameters (value, from, to). The description lists the allowed units, which mirrors the enum values in the schema, adding marginal semantic value.

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 between common weight units and lists the specific units (milligram, gram, kilogram, ounce, pound, stone, ton). This distinguishes it from sibling 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 Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. While the name and description imply use for weight conversion, there are no explicit instructions about prerequisites or when not to use it.

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

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 (readOnlyHint, idempotentHint, destructiveHint) indicate safe behavior. The description adds context by mentioning the use of NASA data and the gravity ratio formula, which goes beyond the annotations. However, it does not describe the return format or potential edge cases, but the output schema handles that.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core purpose, and contains no redundant information. Every sentence contributes 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?

Given the presence of an output schema and detailed parameter descriptions, the description is complete. It explains the calculation method and source, allowing an agent to confidently use the tool 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?

Schema coverage is 100%, with detailed descriptions for weightOnEarth and unit. The description adds minimal extra meaning (e.g., mentioning Pluto and the source) but does not significantly enhance understanding 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 the tool's function: given a weight on Earth, it returns the equivalent weight on each planet and Pluto. It specifies the units and the source (NASA Planetary Fact Sheet), distinguishing it from sibling calculators 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 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 (for converting weight to other planets) but does not provide explicit guidance on when not to use it or alternatives. Sibling tools like age-on-other-planets exist, but the description does not differentiate usage contexts.

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 indicate read-only and non-destructive behavior. The description adds specifics on modes and their effects, providing additional behavioral context beyond annotations.

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

Conciseness5/5

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

Single sentence with a list of modes, front-loaded with purpose. No wasted words; highly efficient.

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 text transformation tool, the description combined with input schema fully specifies behavior. Output schema exists but is not needed to explain return value.

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 covers both parameters with descriptions (100% coverage). The description adds the default value for mode, which is not in the schema, adding extra value.

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 removes or collapses whitespace, with specific verbs and resource. It distinguishes from siblings as a unique text utility.

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 each mode and when to use them, but does not explicitly state when not to use this tool or mention sibling alternatives. However, given the distinct purpose, it's clear.

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.
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 it's a safe, idempotent read operation. The description adds that it is Unicode-aware and reading time assumes 240 wpm, but beyond that, no additional behavioral traits are disclosed. The description 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 two sentences, front-loading the key counts. Every sentence adds necessary detail (Unicode-awareness and reading time assumption). No unnecessary words. It is appropriately sized for the tool's simplicity.

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

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 parameter, output schema exists), the description covers all essential aspects: what it counts, assumptions for reading time, and character limits. The description is complete for an agent to understand the tool's function and usage context.

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 only parameter 'text' is fully described in the input schema (maxLength, description about splitting). The description adds value by listing what metrics are computed (words, characters, sentences, paragraphs, reading time), which is not in the schema. This helps the agent understand how the input is processed.

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 tool counts words, characters, sentences, paragraphs, and reading time in a block of text. It distinguishes itself from sibling tools (mostly converters and calculators) by being a text analysis tool. The verb 'count' and the listed resources clearly define 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 clearly indicates what the tool does, making its usage context apparent. However, it does not explicitly differentiate from the sibling 'character-counter' tool, which may also count characters. Although the description covers more metrics, lack of explicit guidance on when to choose this over a similar tool slightly reduces the score.

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 state readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context: the tool is pure, and callers should pass explicit values for reproducibility. It also explains behavior when 'at' is omitted (treated as 'now'). No contradictions.

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

Conciseness5/5

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

The description is extremely concise (two sentences) and front-loaded with core functionality. Every sentence adds value: first sentence states what it does and what it returns, second sentence gives use cases. 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?

Given the presence of an output schema (so return values are covered), the description completely captures the tool's purpose, parameters, and use cases. It mentions all return components and sufficient usage context.

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%, baseline 3. The description adds meaning by explaining the role of 'at' and 'year', including an example of overriding the year. This goes beyond the schema's type/description to clarify intent and usage patterns.

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 calendar year progress, specifying exact output components (percent, day-of-year, seconds, leap-year flag, ASCII bar). It uses a specific verb 'Calculate' and resource 'calendar year progress', distinguishing 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 provides clear usage context ('goal-tracking', 'how much of the year is left') and indicates it's for a specific moment. No explicit exclusions or alternatives are mentioned, but the purpose is narrow enough that guidance is adequate.

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!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources