Microapp
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.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 46 of 46 tools scored.
Most tools have distinct purposes. However, 'hex-to-rgb' is redundant with 'color-converter', which already handles hex-to-RGB conversion, causing potential confusion.
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.
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.
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 toolsab-test-calculatorARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| alpha | No | Significance threshold (default 0.05). p < alpha declares a statistically significant difference. Two-tailed. | |
| control_visitors | Yes | Number of unique visitors (or sessions, or impressions — whatever the conversion denominator is) in the control arm. Must be a positive integer. | |
| variant_visitors | Yes | Number of unique visitors in the variant arm. Must be a positive integer. | |
| control_conversions | Yes | Number of conversions observed in the control arm. Must be a non-negative integer, and cannot exceed control_visitors. | |
| variant_conversions | Yes | Number of conversions observed in the variant arm. Must be a non-negative integer, and cannot exceed variant_visitors. |
Output Schema
| Name | Required | Description |
|---|---|---|
| alpha | Yes | Significance threshold used (defaults to 0.05). |
| winner | Yes | Which 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_value | Yes | Two-tailed p-value from the standard normal distribution. |
| z_score | Yes | Two-proportion z statistic with pooled standard error. |
| control_ci | Yes | 95% Wald confidence interval for the control rate. Bounds are clamped to [0, 1]. |
| variant_ci | Yes | 95% Wald confidence interval for the variant rate. Bounds are clamped to [0, 1]. |
| significant | Yes | True when p_value < alpha. The standard win/no-win decision. |
| control_rate | Yes | Control conversion rate as a proportion in [0, 1]. |
| variant_rate | Yes | Variant conversion rate as a proportion in [0, 1]. |
| absolute_lift | Yes | Absolute difference in rates: variant_rate − control_rate. Positive means the variant beat the control. |
| relative_lift | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the tool as read-only, idempotent, and non-destructive, which is reinforced by the description's 'Returns...' phrasing. The description goes beyond annotations by detailing the computed outputs (Wald confidence interval, absolute/relative lift, z statistic, two-tailed p-value, significance decision), giving useful insight into its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that efficiently conveys the calculation purpose, the full list of outputs, and the default significance level. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a full output schema and a complete input schema, the description adequately covers the tool's purpose, inputs, and outputs. It also notes the default alpha and the two-tailed nature of the test, providing sufficient context for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides exhaustive descriptions for all five parameters, including constraints and defaults, achieving 100% coverage. The description only mentions the default alpha (0.05) without adding further parameter semantics, so it provides minimal value beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function as a two-proportion z-test for A/B conversion-rate experiments, which is a specific statistical procedure. It also lists the exact outputs (rates, confidence interval, lift, z statistic, p-value, significance decision), making it easy to distinguish from sibling tools like ab-test-sample-size.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the tool is for analyzing A/B conversion-rate experiments, which implies its primary use case. It does not explicitly mention when to use an alternative like ab-test-sample-size, but the context is sufficient for an agent to infer the right scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ab-test-sample-sizeARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| alpha | No | Significance threshold (default 0.05). Two-tailed. | |
| power | No | Statistical power 1−β (default 0.80). | |
| baseline_rate | Yes | Expected control conversion rate as a proportion in (0, 1). E.g. 0.05 for 5%. | |
| minimum_detectable_effect | Yes | Smallest 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
| Name | Required | Description |
|---|---|---|
| alpha | Yes | Significance threshold used. |
| power | Yes | Statistical power used. |
| total | Yes | Total visitors across both arms: 2 × per_arm. |
| per_arm | Yes | Required visitors per arm (control AND variant each need this many). |
| target_rate | Yes | Target rate after the minimum detectable lift. |
| baseline_rate | Yes | Baseline rate used in the calculation. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint true, so the description adds value by specifying the statistical assumptions: two-tailed alpha default of 0.05 and power default of 0.80. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One well-structured sentence that front-loads the result and lists inputs efficiently; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculator with a rich schema and an output schema, the description provides all necessary context: purpose, key inputs, defaults, and statistical framing. No additional details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the description essentially recounts each parameter's meaning from the schema (baseline rate, relative lift, alpha, power). The description adds no parameter-level detail beyond the schema, so a baseline of 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool computes the required sample size per arm for a two-proportion A/B test, naming all key inputs. This specific verb+resource clearly differentiates it from sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context: it is for two-proportion A/B test sample-size calculations, with default alpha and power. It does not explicitly name alternatives or when-not-to-use, but the intended use is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
age-on-other-planetsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ageEarthDays | Yes | Age 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
| Name | Required | Description |
|---|---|---|
| planets | Yes | One row per body, in order from the Sun: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. |
| ageEarthDays | Yes | The input, echoed back. |
| ageEarthYears | Yes | Convenience field: ageEarthDays / 365.25, the same as the Earth row's years value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive. The description adds specific calculation details—sidereal orbital periods from NASA and Julian year for Earth—which helps the agent understand the data source and calibration. This is valuable beyond annotations, so a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver the core functionality and calculation basis without unnecessary words. Front-loaded with the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple conversion, full schema coverage, a read-only annotation, and an output schema, the description suffices. It covers the essential context (source and Earth year definition) without needing to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter, describing bounds and data type. The description reiterates that age is in Earth days but adds no new parameter-specific details. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts an Earth-day age to planetary years using a specific verb ('return') and resource (eight planets plus Pluto). It distinguishes from the sibling 'weight-on-other-planets' by focusing on age rather than weight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly defines the use case: converting an age in Earth days to planetary ages. It does not explicitly name alternatives or exclusions, but the input-output relationship is unambiguous, and among siblings only this tool handles age conversion. A score of 4 reflects clear context without explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
angle-converterARead-onlyIdempotentInspect
Convert between angle units: degree, radian, gradian, turn.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit. | |
| value | Yes | Angle value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the tool's safety profile. The description adds no further behavioral context such as return format, precision, or edge-case handling; it only restates the purpose, providing no additional transparency beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that lists the action and supported units. Every word is informative, with no filler or repetition, and it is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple converter with complete schema documentation and an output schema. The description plus annotations and schema fully cover what an agent needs to invoke it correctly, so no additional context is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for value, from, and to, including enums for source and target units. The description adds no parameter-specific semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts between angle units and enumerates the supported units (degree, radian, gradian, turn), which distinguishes it from sibling converters like length-converter or temperature-converter. The verb 'convert' and resource 'angle units' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly defines when to use this tool by naming angle units as the conversion domain, making the context clear. It does not explicitly provide exclusions or alternatives, but given the sibling tool names, the intended use is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arctan-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | The number whose inverse tangent (arctan) you want. Any real number; the function is defined on (-∞, +∞) and returns a value in (-π/2, +π/2). | |
| unit | No | Output unit. Defaults to 'degrees'. Use 'radians' for math/physics contexts; 'degrees' for geometry, navigation, and CAD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds useful behavioral context by defining the principal value range (-90°, 90°) / (-π/2, π/2) and the inverse relationship tan(θ) = x, which explains what the result represents. It doesn't detail output formatting but is sufficient for a read-only calculator.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no filler. It front-loads the core purpose, follows with the mathematical definition and range, and ends with a clear pointer to an alternative. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator tool with strong annotations and no output schema, the description sufficiently explains what the result is (an angle), the possible unit options, the principal value constraint, and the key alternative. No critical context is missing for an agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already fully describes both parameters, including domain and defaults. The description adds minimal new parameter meaning beyond what is in the schema (e.g., 'any real number' is already in the x description), so it does not elevate above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Compute') and resource ('arctan(x)'), clearly identifies the mathematical function (inverse tangent), and notes the degrees/radians options. It also differentiates from two-argument arctan by explicitly naming atan2, which distinguishes it from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance on when to use this single-argument arctan tool versus atan2, including an explicit exclusion: 'For two-argument arctan that resolves the full circle, use atan2 instead.' This is a strong when-not/alternative statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
area-converterARead-onlyIdempotentInspect
Convert between area units: square-meter, square-kilometer, square-foot, square-yard, acre, hectare, square-mile.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit. | |
| value | Yes | Area value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which adequately cover the safety profile. The description adds the unit list but no additional behavioral context such as rounding, precision, or error handling, so it provides only baseline value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence that front-loads the action and resource, followed by a concise enumeration of supported units. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple unit conversion tool, the description together with the rich schema and annotations provides all necessary context. The output schema exists to cover return values, so no further explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full descriptions for all three parameters (value, from, to) with 100% coverage. The tool description only repeats the unit list already present in the enum values, offering no additional parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Convert') on a specific resource ('area units') and enumerates all supported units. This distinguishes it from sibling converters for length, volume, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool—when an area conversion is needed—without explicitly stating alternatives. The sibling tool names make the alternative obvious, but no direct exclusion is mentioned, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aspect-ratioARead-onlyIdempotentInspect
Compute the simplified aspect ratio of a width × height pair, plus the decimal ratio. Useful for image, video, screen, and design contexts.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | Width in any unit. | |
| height | Yes | Height in same unit as width. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gcd | Yes | Greatest common divisor used to simplify. |
| simplified | Yes | Simplified width and height. |
| ratio_string | Yes | Simplified ratio in 'W:H' form. |
| ratio_decimal | Yes | Decimal width-to-height ratio. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the behavioral detail that it computes both a simplified ratio and a decimal ratio, going beyond the static annotations. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the core function in the first sentence, and adds relevant usage context in the second. Every word earns its place with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator tool with an output schema (indicated by 'Has output schema: true'), the description fully covers purpose and usage context. Annotations and schema handle safety and parameter constraints, so nothing important is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both width and height having clear descriptions (e.g., 'Width in any unit' and 'Height in same unit as width'). The description itself adds little beyond the schema, only referring to a 'pair,' which is already evident from the schema's required fields. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compute') and resource ('width × height pair'), clearly distinguishing this tool from the many sibling calculator tools. It also specifies the two outputs (simplified ratio and decimal ratio), leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('image, video, screen, and design contexts') but does not explicitly mention when not to use it or name alternative tools. It lacks exclusions but is still useful for selecting the tool in relevant scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
average-calculatorARead-onlyIdempotentInspect
Compute summary statistics for a list of numbers: count, sum, mean, median, min, max, and mode(s).
| Name | Required | Description | Default |
|---|---|---|---|
| numbers | Yes | Array of numbers to summarize. |
Output Schema
| Name | Required | Description |
|---|---|---|
| max | Yes | Largest value. |
| min | Yes | Smallest value. |
| sum | Yes | Sum of all inputs. |
| mean | Yes | Arithmetic mean. |
| count | Yes | How many numbers were summarized. |
| modes | Yes | Most frequently occurring values. |
| median | Yes | Middle value (or average of two middle values for even-length lists). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds value by specifying exactly which statistics are computed and noting the possibility of multiple modes with 'mode(s)', which is a useful behavioral nuance beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the verb and resource, then enumerates the outputs without any redundant text. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter calculator with a full schema description and an output schema present, the description is complete enough. It covers all computed statistics, and schema constraints (minItems=1) handle edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter ('numbers') with a clear description and constraints. The tool description does not add additional parameter-specific semantics, so a baseline score of 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compute') and names a clear resource ('summary statistics for a list of numbers') with an explicit list of statistics. This distinguishes it from sibling tools like geometric-mean and percentage-calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is self-evident, but the description offers no explicit guidance on when to use this tool versus alternatives, nor any exclusions. Usage is only implied by the stated statistics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base64ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | encode: text → base64. decode: base64 → text. | |
| input | Yes | Input string. Plain text for encode, base64 for decode. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | Mode used, echoed back. |
| output | Yes | The encoded or decoded result. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by specifying 'UTF-8 safe' and the exact role of each mode, going beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, followed by mode usage and a safety note. Every word earns its place; no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, an output schema exists for return values, and the description covers purpose, mode selection, and encoding safety. It doesn't mention error handling for invalid base64, but for a straightforward converter, the description is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters already documented in the input schema. The description reaffirms the mode semantics but adds little beyond the schema's own descriptions, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool encodes plain text to base64 and decodes base64 back to text, with a clear verb-resource relationship. It distinguishes from sibling tools by being the only base64 utility, and the mode parameter explicitly differentiates the two directions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit operating instructions (use mode='encode' or 'decode'), which provides clear usage context. It doesn't explicitly mention alternatives or when not to use, but given the tool's unique purpose, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitwise-operations-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First 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. | |
| b | No | Second integer as a string. Required for AND, OR, XOR, and the three shifts. Ignored for NOT (unary). | |
| op | Yes | Operation: and (&), or (|), xor (^), not (~), shl (<<), shr (>> arithmetic right shift), ushr (>>> logical right shift on the low 32 bits). | |
| base | Yes | How to parse a and b: dec, hex, bin, or oct. | dec |
Output Schema
| Name | Required | Description |
|---|---|---|
| op | Yes | The operation that ran, echoed for display. |
| bin | Yes | Result in binary, prefixed with 0b. Negative values are signed (leading minus). |
| dec | Yes | Result as a decimal string. |
| hex | Yes | Result in hexadecimal, prefixed with 0x. Negative values are signed (leading minus). |
| oct | Yes | Result in octal, prefixed with 0o. Negative values are signed (leading minus). |
| bits32 | Yes | Low 32 bits of the result as a binary string, MSB on the left. Used for the visual grid. |
| exceeds32 | Yes | True when the result does not fit in a signed 32-bit integer. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond that: it explains the output includes decimal, hex, binary, octal, and a low-32-bit binary representation, and that operands are BigInts. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that lists operations and output formats without redundancy. Every piece of information earns its place, and the structure makes the core purpose immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a straightforward calculator with a moderate parameter set and an output schema. The description covers the operational scope and output formats, while the schema supplies parameter details and the annotations cover safety. No significant missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter well-documented (formats, required conditions, shift semantics). The description itself adds little parameter-level detail beyond restating that operands are BigInts, which is already implied by the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs bitwise operations (AND, OR, XOR, NOT, shifts) on two BigInt operands and returns results in multiple bases plus a low-32-bit binary representation. The verb+resource are specific, and the operation list distinguishes it from other calculator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use: when a bitwise operation on arbitrary-precision integers is needed. It does not explicitly name alternatives or exclusions, but no sibling tool offers overlapping functionality, so the intended use is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board-foot-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| qty | No | Number of identical pieces. Defaults to 1. | |
| width_in | Yes | Lumber width in inches. Nominal (a 1x6 = 6) or actual — be consistent across the order. | |
| length_in | Yes | Lumber length in inches. Multiply feet by 12 (an 8 ft board = 96). | |
| thickness_in | Yes | Lumber thickness in inches. Surfaced 1x stock is 0.75; 5/4 stock is 1; 8/4 is 2. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the calculation formula and the definition of a board foot, which meaningfully explains behavior beyond annotations. It does not detail output rounding, but for a simple calculator this is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences with no filler. The first states the purpose, the second provides the formula and unit definition. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward calculator with fully documented parameters and comprehensive annotations, this description is complete. It provides the formula, definition, and context. The lack of an output schema is acceptable since the computed result is self-explanatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% parameter description coverage, so the baseline is 3. The description adds value by tying parameters together in the formula and defining a board foot, reinforcing the role of thickness, width, length, and qty. This elevates it above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compute board feet for lumber.' It immediately states the tool's purpose and is clearly distinct from sibling calculators like area or length converters. The inclusion of the formula further cements the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool is for lumber board foot calculations. While it does not explicitly mention alternatives, the specialized nature makes the intended use evident. Sibling tools do not overlap with this function, so no exclusions are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
box-shadow-generatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| layers | Yes | One or more shadow layers. The first layer is rendered on top in CSS. |
Output Schema
| Name | Required | Description |
|---|---|---|
| css | Yes | Full CSS declaration ready to paste, e.g. "box-shadow: 0px 4px 12px 0px rgba(0,0,0,0.1);" |
| value | Yes | The box-shadow value only (no property name, no semicolon), suitable for inline-style use. |
| layerCount | Yes | Number of stacked shadow layers in the output. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive hints. The description adds the 'copy-ready CSS string' output trait and explains the layer structure, which provides useful behavioral context beyond the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with front-loaded purpose, then parameter details, then output format. Every word earns its place; there is zero waste and no redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one required parameter, a detailed schema, an output schema present, and annotations providing the safety profile, the description is fully sufficient. The output format is explicitly stated, so an agent can correctly invoke the tool without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with detailed descriptions for each field (offset, blur, spread, color, inset). The description only lists the field names without adding new meaning, so the baseline score of 3 is appropriate as the schema already provides full parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Build') and names the exact resource ('CSS box-shadow declaration'), clearly distinguishing it from sibling tools like color-converter or hex-to-rgb. It also specifies the scope ('one or more shadow layers'), leaving no ambiguity about its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the use case (generating box-shadow CSS from layers), which is obvious from the context. However, it does not explicitly state when not to use this tool or name alternative tools. Since no sibling tool overlaps, this is acceptable but lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
burn-rate-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ending_cash | Yes | Cash 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_months | Yes | Length of the measurement window in months (default 1). Use 1 for last month, 3 for a quarter, 12 for the trailing year. | |
| starting_cash | Yes | Cash on hand at the start of the period, in dollars. Use the bank balance plus any short-term equivalents. | |
| monthly_revenue | No | Optional 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
| Name | Required | Description |
|---|---|---|
| health | Yes | Coarse 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_burn | Yes | Monthly net cash decline in dollars. Negative when the company gained cash during the period. |
| gross_burn | Yes | Monthly gross operating expense in dollars (net_burn + monthly_revenue). Equals net_burn when revenue is 0 or unspecified. |
| runway_months | Yes | Months of runway at the current net burn rate. null when net_burn ≤ 0 (cash is flat or growing — runway is effectively infinite). |
| monthly_revenue | Yes | Echoed revenue input, 0 when unspecified. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety and side-effect profile is established. The description adds behavioral context beyond these annotations by specifying the outputs (gross burn, net burn, runway) and the unique 'health label' benchmarked to SaaS funding-stage expectations. It does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the core purpose and inputs, while the second adds the unique health-label output. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a straightforward calculator with four simple numeric parameters, all fully documented in the schema. Annotations provide safety context, and an output schema exists (as stated in context signals), so the description need not explain return values. The description adds the health-label benchmark, ensuring complete context for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter already explained in detail (e.g., starting_cash: 'Cash on hand at the start of the period, in dollars. Use the bank balance plus any short-term equivalents.'). The description adds no additional parameter-level meaning, but this is acceptable because the schema carries the full burden. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Compute a startup's gross burn, net burn, and runway from starting cash, ending cash, the period in months, and optional monthly revenue.' This includes a specific verb ('Compute'), a resource ('startup's gross burn, net burn, and runway'), and enumerates the inputs, which distinguishes it from all sibling calculator tools. The additional mention of a 'health label benchmarked to standard SaaS funding-stage runway expectations' further differentiates it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by listing the required parameters (starting cash, ending cash, period months) and optional monthly revenue, giving the agent clear contextual cues about the data needed. However, it does not explicitly mention alternatives or when not to use it. The schema provides additional usage guidance for the period_months parameter (e.g., 'Use 1 for last month, 3 for a quarter, 12 for the trailing year').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
case-converterARead-onlyIdempotentInspect
Change the case of text: UPPERCASE, lowercase, Title Case, or Sentence case.
| Name | Required | Description | Default |
|---|---|---|---|
| case | Yes | Target case. upper=ALL CAPS, lower=all lower, title=Title Case Each Word, sentence=First letter only. | |
| text | Yes | Text to transform. |
Output Schema
| Name | Required | Description |
|---|---|---|
| case | Yes | Case used, echoed back. |
| output | Yes | Transformed text. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, non-destructive, and idempotent, so the bar is lower. The description simply restates the operation without adding behavior details such as edge-case handling or output confirmation, though none are necessary given the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short clauses, front-loading the primary action and listing the four case formats. No filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter text transformation with full schema coverage, an output schema, and annotations indicating safety, the description plus structured data provide sufficient context. No major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover both parameters fully (100% coverage), including the enum meanings for case. The description repeats the case options but adds no new semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'change' and identifies the resource 'case of text,' listing four specific case types. This clearly distinguishes it from sibling text tools like reverse-text or dedup-lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives are mentioned. The intended usage is implied by the tool's name and purpose, but there is no discussion of when to choose this over other text manipulation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
character-counterARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to analyze. Capped at 60,000 characters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| fits_sms | Yes | True if 160 characters or fewer. |
| characters | Yes | Total characters. |
| fits_tweet | Yes | True if 280 characters or fewer. |
| characters_no_spaces | Yes | Characters excluding ASCII whitespace. |
| characters_no_whitespace | Yes | Characters excluding all Unicode whitespace. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds valuable behavioral context by stating it returns separate counts and highlights the 'without guessing' aspect, which informs the agent about the tool's output style and reliability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action and results, followed by concrete, useful examples. Every word earns its place without unnecessary filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with strong annotations and an output schema, the description fully covers purpose, behavior, and use cases. It provides enough context for an agent to select and invoke this tool correctly without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is fully self-descriptive with 100% coverage: the single parameter 'text' is documented with its type and maxLength. The description adds no additional parameter-level detail beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Count characters in text, with and without spaces.' It clearly distinguishes itself from sibling tools like word-counter and vowel-counter by emphasizing the two distinct outputs (with/without spaces) and the use case for character-limit checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool, such as checking if text fits in a tweet (280 chars) or SMS (160 chars). It does not explicitly mention when not to use it or name alternatives, but the examples make the intended usage highly apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cidr-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | Dotted-decimal IPv4 address, e.g. '192.168.1.10'. Used with `mask` when CIDR notation isn't provided. | |
| cidr | No | IPv4 CIDR notation, e.g. '192.168.1.0/24'. Provide this OR (ip + mask). Prefix length must be 0-32. | |
| mask | No | Dotted-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
| Name | Required | Description |
|---|---|---|
| cidr | Yes | Canonical CIDR notation, e.g. '192.168.1.0/24'. |
| prefix | Yes | Prefix length, 0-32. |
| ipClass | Yes | Legacy IPv4 class derived from the first octet (A/B/C/D/E). |
| network | Yes | Network address (first IP in the block). |
| hostBits | Yes | Number of host bits (32 - prefix). |
| ipBinary | Yes | Input IP as 32 bits in dotted-octet binary. |
| totalIps | Yes | Total IP addresses in the block (2^(32 - prefix)). |
| broadcast | Yes | Broadcast address (last IP in the block); same as network for /32. |
| usableIps | Yes | Usable host addresses (totalIps - 2, but 2 for /31 and 1 for /32). |
| lastUsable | Yes | Last usable host address. Equals network for /31 and /32. |
| maskBinary | Yes | Subnet mask as 32 bits split into 4 dotted octets, e.g. '11111111.11111111.11111111.00000000'. |
| subnetMask | Yes | Subnet mask in dotted-decimal, e.g. '255.255.255.0'. |
| firstUsable | Yes | First usable host address. Equals network for /31 and /32. |
| wildcardMask | Yes | Wildcard mask in dotted-decimal (bitwise NOT of subnet mask). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the input mode flexibility and the full list of computed values, but it does not discuss error behavior or edge cases beyond what schema param descriptions already cover. This is slightly above baseline but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One well-structured sentence that front-loads the action and input, then enumerates the outputs. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and stateless; annotations declare it read-only, and an output schema exists to document return values. The description covers the dual input modes and the scope of calculations. It is sufficiently complete for this calculator, though it doesn't explicitly restate validation rules that are already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all three parameters. The tool description clarifies the relationship between parameters (cidr OR ip+mask) and enumerates the output fields, adding some semantic context but not significantly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Parse' and names the resource (IPv4 CIDR block or IP + dotted-decimal mask), then lists the computed outputs. It clearly distinguishes this from sibling calculators, which cover unrelated domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the two accepted input forms (CIDR or IP+mask) and implicitly states when to use the tool—whenever network calculations on IPv4 blocks are needed. No alternative tool exists among siblings, so no explicit exclusions are needed. Clarity is high, but it stops short of giving explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coffee-habit-cost-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| drink | Yes | Drink preset. 'latte' (~$5.75), 'cappuccino' (~$5.25), 'drip-coffee' (~$3.25), 'cold-brew' (~$5.50), or 'custom' to provide custom_price. | |
| years | Yes | Horizon in years over which the habit continues. Decimals allowed (e.g. 30 for a working career, 10 for a decade). | |
| custom_price | No | Required when drink='custom'. Price per drink in dollars (e.g. 4.50). Ignored for presets. | |
| times_per_week | Yes | How many drinks per week. Fractional is allowed (e.g. 5 weekdays, or 2.5 for an every-other-day habit). | |
| annual_return_percent | Yes | Expected 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
| Name | Required | Description |
|---|---|---|
| drink_price | Yes | Resolved price per drink (preset or custom). |
| total_spent | Yes | Total nominal dollars spent on coffee over the horizon. |
| total_weeks | Yes | Number of weekly contributions / drinks (years × 52, rounded to integer). |
| annual_spend | Yes | weekly_spend × 52. |
| weekly_spend | Yes | drink_price × times_per_week. |
| invested_value | Yes | Future value of investing the same weekly amount at annual_return_percent over the horizon (end-of-week contributions). |
| opportunity_cost | Yes | invested_value − total_spent. Positive when the investment outgrows the cash spent (typical with positive return). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description adds complementary detail: it is a pure calculation returning three specific values (total spent, invested future value, opportunity-cost gap). The 'not to moralize' note clarifies tone, but no mention of compounding frequency or nominal/real assumptions, though these are not required given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: first defines the comparison, second lists outputs, third gives intent. No redundant phrasing or restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description fully covers purpose, calculation logic, and return contents. The tool is simple enough that no further detail about return structure or side effects is needed; nothing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds value by giving the calculation formula ('drink price × times per week × years') and clarifying that the alternative investment is 'at a given annual return,' which maps directly to annual_return_percent without repeating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific comparative verb ('Compare') and resource ('total nominal cost of a recurring coffee habit' vs. invested value), making the tool's purpose unmistakable. It also distinguishes itself from the sibling tool coffee-ratio-calculator by focusing on opportunity cost rather than brewing ratios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (whenever the user wants to see the opportunity cost of coffee spending vs. investing) and adds context ('make compounding visible, not to moralize'). It does not explicitly list alternatives or exclusions, but the scope is clear enough for an AI to select it among sibling calculator tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coffee-ratio-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ratio | No | Override 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_g | No | Coffee grams. Required when solve_for='water'. Must be > 0. | |
| water_ml | No | Water in millilitres. Required when solve_for='coffee'. Must be > 0. Water density is taken as 1 g/ml. | |
| solve_for | Yes | Which variable to compute. 'water' takes coffee grams as input and returns water ml. 'coffee' takes water ml as input and returns coffee grams. | |
| brew_method | Yes | The 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
| Name | Required | Description |
|---|---|---|
| grind | Yes | Recommended grind size for this brew method. |
| notes | Yes | Short note about the method. |
| ratio | Yes | Coffee-to-water ratio used (the 'N' in 1:N). |
| coffee_g | Yes | Coffee grams (rounded to 0.1 g). |
| water_ml | Yes | Water in millilitres (rounded to 1 ml). |
| water_oz | Yes | Water in US fluid ounces (rounded to 0.1 oz). |
| brew_time | Yes | Brew-time guideline for this brew method. |
| brew_method | Yes | Brew method id. |
| ratio_label | Yes | Ratio formatted as a 1:N string. |
| brew_method_label | Yes | Display label for the brew method. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds that the tool returns recommended grind and brew time beyond the computed variable, and clarifies the OR relationship between coffee and water inputs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action verb and resource, listing methods and succinctly describing input/output. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a well-documented schema, an output schema present, and low complexity, the description covers the primary workflow and additional outputs. It omits mention of ratio override, but that is already in the schema, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all five parameters. The description summarizes the core relationship ('enter coffee grams OR water ml') but adds little beyond what the schema already specifies, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Compute' and targets a clear resource: coffee-to-water ratio for popular brew methods. It lists the methods and clarifies it returns the complementary variable plus grind and brew time, distinguishing it from sibling tools like coffee-habit-cost-calculator and recipe-scaler.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: use this tool to compute the ratio for a chosen brew method, entering either coffee grams or water ml. It implies the use case but does not explicitly name alternatives or exclude cases, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color-converterARead-onlyIdempotentInspect
Convert a color between hex, RGB, HSL, and HSV representations. Auto-detects the input format from the string syntax.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | The 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
| Name | Required | Description |
|---|---|---|
| hex | Yes | 6-digit hex color with leading #. |
| hsl | Yes | HSL representation. |
| hsv | Yes | HSV representation. |
| rgb | Yes | RGB representation. |
| rgba | Yes | RGBA representation. |
| hex_with_alpha | Yes | 8-digit hex with alpha if alpha < 1, else same as hex. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, establishing safety. The description adds the useful behavioral trait of auto-detecting the input format, but does not disclose output shape, invalid input handling, or edge cases. It adds some value beyond annotations but remains minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise, information-dense sentences. The first states the core purpose, the second explains a key behavior (auto-detection). No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the strong annotations and complete schema, the description is largely sufficient. The only minor gap is ambiguity about whether the output returns all representations or a specific one, but the output schema (not shown) likely resolves this. The description could also mention invalid input behavior, but it is a simple converter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description does not add parameter information, but the schema's parameter description thoroughly lists accepted input formats. No additional compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Convert') on a clear resource (color) and enumerates the supported representations (hex, RGB, HSL, HSV). It distinguishes itself from the sibling 'hex-to-rgb' tool by covering more formats, and the auto-detection note reinforces its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when color conversion across these formats is needed) but does not explicitly mention alternatives or when not to use it. It does not reference the overlapping sibling tool 'hex-to-rgb', leaving the choice to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cookie-consent-generatorARead-onlyIdempotentInspect
Generate a copy-pasteable HTML+CSS+JS cookie consent banner. Inputs: position (top/bottom), visual style (minimal/detailed/brutalist), which non-essential categories to expose (analytics, marketing, preferences), colors, button labels, message, policy URL, and the localStorage key. Output is a self-contained block that persists the visitor's choice and dispatches a cookieconsentchange CustomEvent for analytics wiring.
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes | Visual style. "minimal" = single sentence + accept/reject. "detailed" = full text plus per-category toggles. "brutalist" = hard borders, no shadow, monospace text. | detailed |
| colors | Yes | Color scheme for the banner. Pick contrasting accept/reject so users can tell them apart. | |
| buttons | Yes | Button copy. Keep labels short — long copy wraps awkwardly on mobile. | |
| message | Yes | The headline message shown on the banner. One or two sentences max. | We use cookies to make this site work and to understand how it's used. Pick what you're comfortable with. |
| position | Yes | Banner placement. "top" pins to the top of the viewport, "bottom" to the bottom. | bottom |
| policyUrl | Yes | URL for your full privacy / cookie policy. Rendered as a "Learn more" link. | /privacy |
| categories | Yes | Which non-essential category toggles to render. Necessary cookies are always on and shown as a locked row. | |
| storageKey | Yes | localStorage key the banner writes the user's choice to. | cookie-consent |
Output Schema
| Name | Required | Description |
|---|---|---|
| js | Yes | Just the JS, without the surrounding <script> tags. |
| css | Yes | Just the CSS, without the surrounding <style> tags. |
| html | Yes | The complete copy-pasteable block: <style>, <script>, and the banner markup. Paste before </body>. |
| markup | Yes | Just the HTML markup for the banner, with no <style> or <script>. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the tool is known to be safe and deterministic. The description adds valuable behavioral detail about the generated output: it persists via localStorage and dispatches a cookieconsentchange CustomEvent, which informs integration assumptions. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core purpose, the second lists inputs and output behavior. It is front-loaded with the verb, and every clause adds relevant information. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, nested objects, and an output schema, this description is complete: it covers the purpose, input categories, output behavior (persistence, event dispatch), and signals it is a self-contained snippet. The output schema handles return-value details, so no additional explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter with detailed descriptions (position enum, style enum defaults, button labels, etc.). The description summarizes the inputs but adds no new semantic meaning; it simply restates what the schema provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Generate a copy-pasteable HTML+CSS+JS cookie consent banner.' This clearly states what the tool does, distinguishes it from sibling generators (box-shadow, passphrase, etc.), and includes the output format (HTML+CSS+JS) which is a key differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: the tool produces a cookie consent banner, and the input/output description clarifies its scope. However, there is no explicit 'when not to use' or mention of alternatives, though the purpose is self-evident in a generator-heavy sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cron-expression-generatorARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| fromIso | No | Reference time in ISO 8601 (e.g. '2026-05-14T10:00:00Z'). Defaults to current time. Used for deterministic 'next run' computation. | |
| nextCount | No | How many upcoming fire times to compute. Default 5. Use 0 to skip. | |
| expression | Yes | A 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
| Name | Required | Description |
|---|---|---|
| valid | Yes | True when the expression parsed cleanly. |
| nextRuns | Yes | ISO 8601 timestamps (UTC) of the next N fire times. |
| expression | Yes | The normalized cron expression, echoed back. |
| description | Yes | Plain-English description of when the expression fires. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, lowering the burden. The description adds value by explaining the tool's non-mutating actions (parse, describe, compute) and specifying the 5-field constraint. No contradictions with annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences and is entirely front-loaded with the core actions. It includes a relevant example without any redundant words or filler, making every sentence earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema, annotations, and the presence of an output schema, the description is complete. It covers the input format, the computation behavior, and an example, leaving no significant gaps for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all three parameters with detailed descriptions (100% coverage), so the baseline is 3. The description's example adds a concrete illustration but does not provide additional semantic depth beyond what the schema already states for fromIso and nextCount.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with specific verbs: 'Parse a 5-field cron expression, describe it in plain English, and compute the next N fire times.' It precisely identifies the resource (cron expression) and the actions (parse, describe, compute), making it distinct from sibling tools like calculators and converters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by specifying the exact input format and an example: "Input the standard 'minute hour day-of-month month day-of-week' form (e.g. '0 9 * * 1-5' for weekdays at 9am)." It does not explicitly mention when not to use the tool or name alternatives, but no close siblings exist, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data-storage-converterARead-onlyIdempotentInspect
Convert between digital storage units: bit, byte, kilobyte (1024 B), megabyte, gigabyte, terabyte. Uses binary (1024-based) sizing.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit. Uses binary (1024-based) sizing for byte→kilobyte etc. | |
| value | Yes | Storage value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the key behavioral trait of using binary (1024-based) sizing, but this is also repeated in the parameter schema description for 'from'. No contradictions exist, and no additional operational details are needed given the simple nature of the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource, and includes the essential detail about binary sizing. Every word earns its place with no waste, making it extremely concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the converter, the tool description combined with the rich input schema (with enums and descriptions) and output schema provides complete context. The description clarifies the unit set and conversion base, which is sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (value, from, to) having a clear description. The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a storage unit converter with the specific verb 'Convert', names the exact units (bit, byte, kilobyte, etc.), and specifies the binary (1024-based) sizing. This distinguishes it from other converter siblings like length-converter or temperature-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the conversion domain (digital storage units) and notes the binary sizing, giving clear context for when to use the tool. It doesn't explicitly mention alternatives or exclusions, but the specificity of the units makes the usage obvious among sibling converter tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
days-betweenARead-onlyIdempotentInspect
Calculate the number of days between two ISO 8601 dates. Returns days, weeks, months, and years (decimal). Inclusive count = absolute |end - start|.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End date in ISO 8601 (YYYY-MM-DD or full ISO timestamp). | |
| start | Yes | Start date in ISO 8601 (YYYY-MM-DD or full ISO timestamp). |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | Yes | Number of days between the dates (absolute). |
| weeks | Yes | Equivalent number of weeks. |
| years | Yes | Approximate number of years (assuming 365.25 days/year). |
| months | Yes | Approximate number of months (assuming 30.4375 days/month). |
| direction | Yes | Whether end comes after or before start. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the tool is known to be safe and non-mutating. The description adds valuable behavior details: the inclusive count formula using absolute difference and the multi-unit return values. This goes beyond annotations and clarifies the calculation method.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the primary purpose, then giving essential behavioral details. Every sentence earns its place, with no repetition or wordiness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only calculator with a schema covering both parameters and an output schema present, the description provides sufficient context: purpose, return units, and calculation logic. The annotations cover safety, so no additional behavioral caveats are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both 'start' and 'end' parameters (ISO 8601 format), so schema coverage is 100%. The description does not add significant parameter-level meaning, though the absolute-difference formula implicitly states that parameter order is irrelevant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates the number of days between two ISO 8601 dates, with a specific verb and resource. It also notes the returned units (days, weeks, months, years), distinguishing it from other date-related calculators in the sibling list like 'easter-date-calculator' or 'age-on-other-planets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you need the time span between two dates) but does not explicitly state alternatives or exclusions. There is no mention of when not to use it or which sibling tool might be more appropriate in other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dedup-linesARead-onlyIdempotentInspect
Remove duplicate lines from a text block. Optionally case-insensitive. Order is preserved (not sorted).
| Name | Required | Description | Default |
|---|---|---|---|
| keep | No | Which occurrence to keep. Default first. | |
| text | Yes | Multi-line text. | |
| case_insensitive | No | If true, lines that differ only in case are considered duplicates. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kept | Yes | Number of lines kept. |
| output | Yes | Deduplicated text with newline-joined lines. |
| removed | Yes | Number of duplicate lines removed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations, such as order preservation and optional case-insensitivity. It does not contradict annotations and provides enough transparency for a simple utility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. It front-loads the primary action and immediately covers the most important nuance (order preservation). Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, rich schema, and presence of an output schema, the description adequately covers the main behavior, key option (case-insensitive), and behavioral guarantee (order preservation). It is complete for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all three parameters (text, keep, case_insensitive) having descriptions. The description adds no substantial parameter information beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and resource ('duplicate lines from a text block'), clearly stating the tool's function. It also adds a key differentiator ('Order is preserved (not sorted)') that distinguishes it from sibling tools like sort-lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (to deduplicate lines) and implicitly excludes sorting with the parenthetical '(not sorted)'. However, it does not explicitly name alternative tools or state when not to use it, lacking explicit exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discount-calculatorARead-onlyIdempotentInspect
Apply a percentage discount to a price. Returns sale price, amount saved, and the discount percentage echoed back.
| Name | Required | Description | Default |
|---|---|---|---|
| original | Yes | Original price. | |
| discount_percent | Yes | Discount percentage (e.g. 25 for 25%). |
Output Schema
| Name | Required | Description |
|---|---|---|
| original | Yes | Original price, echoed back. |
| you_save | Yes | Amount saved. |
| sale_price | Yes | Price after discount. |
| discount_percent | Yes | Discount percent, echoed back. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds no behavioral context beyond echoing the discount percentage in the return, which is not critical since an output schema exists. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and output, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with well-documented params and an output schema, the description is complete enough for an agent to select and invoke correctly; no further context like rounding rules is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the description does not need to add parameter details; it doesn't, and the schema already explains 'Original price' and 'Discount percentage'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies a percentage discount and returns the sale price, amount saved, and the discount percentage, which is specific and distinguishes it from sibling calculators like percentage-calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as percentage-calculator or tip-calculator, and lacks exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dollar-cost-averaging-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| frequency | Yes | Contribution cadence. 'weekly' = 52/yr, 'biweekly' = 26/yr, 'monthly' = 12/yr. | |
| period_count | Yes | Total number of contributions (e.g. 120 for 10 years of monthly contributions). | |
| inflation_percent | No | Optional annual inflation rate (e.g. 2.5). When provided, the engine also returns inflation-adjusted (today's dollars) final value and gains. | |
| annual_return_percent | Yes | Expected 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_period | Yes | Amount invested at the end of each period (e.g. 500 for $500 per month). |
Output Schema
| Name | Required | Description |
|---|---|---|
| final_value | Yes | Future value of the DCA stream (nominal). |
| total_gains | Yes | final_value − total_invested. |
| total_years | Yes | period_count / periods_per_year, for display. |
| total_invested | Yes | Sum of all contributions. |
| periods_per_year | Yes | Echoed from frequency. |
| real_final_value | Yes | Inflation-adjusted final_value in today's dollars (null when inflation not provided). |
| real_total_gains | Yes | Inflation-adjusted gains in today's dollars (null when inflation not provided). |
| lump_sum_advantage | Yes | lump_sum_final_value − final_value. Positive when lump-sum beats DCA (typical with positive returns). |
| lump_sum_final_value | Yes | Future value if the same total_invested were invested entirely at period 0. |
| equivalent_cagr_percent | Yes | Money-weighted annual return that reproduces final_value from the contribution stream. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the bar is lower. The description adds useful behavioral context by listing return values (final value, gains, CAGR, inflation-adjusted figures) and the lump-sum head-to-head, without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose and followed by a concise list of outputs. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with a complete schema and output schema, gives enough context for a user to understand the tool's function and result. It could mention assumptions like constant return rates, but for a calculator this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds minimal parameter nuance beyond the schema—only noting that inflation-adjusted figures are optional. It does not need to compensate for missing schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool projects the final value of a DCA plan and compares it to lump-summing, naming specific outputs. This distinguishes it from sibling calculators by explicitly mentioning DCA and the lump-sum comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it's for comparing DCA vs lump-sum investment. However, it does not explicitly mention when not to use it or name alternative tools, so it misses the full 'when/when-not' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dummy-data-generatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | How many rows to generate. Min 1, max 1000. | |
| seed | No | Optional integer seed for deterministic output. Same seed + same inputs = same rows. Omit for fresh randomness on each call. | |
| fields | Yes | Which 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. | |
| format | Yes | Output format. 'json' returns an array of objects; 'csv' returns RFC-4180 CSV with a header row. | |
| numberMax | No | Upper bound (inclusive) for the numberRange field. Default 1000. | |
| numberMin | No | Lower bound (inclusive) for the numberRange field. Default 0. | |
| loremWords | No | How many words in each loremText field. Default 8. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Serialized rows in the requested format (JSON string or CSV string). |
| rows | Yes | Number of rows generated. |
| fields | Yes | Column names included, in output order. |
| format | Yes | Format that was used to serialize. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by explaining the cross-field consistency rules and the deterministic-seed property, which are not captured in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that front-load the core purpose and then add valuable behavioral detail. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100% schema coverage and an output schema present, the description provides the right level of high-level context. It explains the tool's unique value (tabulated fake data with coherent identities) while leaving parameter details to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Because the schema describes all seven parameters with full coverage, the baseline is 3. The description earns extra credit by clarifying how the field parameters interact (e.g., 'first/last name match the email; state matches the ZIP prefix'), giving semantic meaning beyond the individual parameter definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Generate tabular test fixtures (JSON or CSV) from a chosen mix of fake fields,' giving a specific verb, resource, and output formats. It further distinguishes itself from sibling generators (e.g., random-number, uuid-generator) by emphasizing row-level consistency and public-domain data tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames when to use the tool: for creating tabular test fixtures with realistic identity correlations (e.g., first/last name match email, state matches ZIP). It does not explicitly name alternatives or exclusions, but the context is concrete enough to guide selection among the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easter-date-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | The 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
| Name | Required | Description |
|---|---|---|
| year | Yes | The input year, echoed back. |
| sameDate | Yes | True when Western and Orthodox Easter fall on the same Sunday (happens roughly once every 4 years; e.g. 2025, 2028). |
| pentecost | Yes | Pentecost (Whitsunday) — Western Easter plus 49 days. Seven weeks after Easter. |
| goodFriday | Yes | Good Friday — Western Easter minus 2 days. Commemorates the crucifixion. |
| palmSunday | Yes | Palm Sunday — Western Easter minus 7 days. The Sunday before Easter. |
| ashWednesday | Yes | Ash Wednesday — Western Easter minus 46 days. Marks the start of Lent. |
| westernEaster | Yes | Western (Gregorian) Easter Sunday — used by Catholic, Protestant, and most Western Christian churches. |
| orthodoxEaster | Yes | Eastern Orthodox Easter Sunday (Pascha) — computed from the Julian calendar's paschal rule and rendered as a proleptic Gregorian date. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context by listing the specific computed dates and naming the Meeus/Anonymous Gregorian algorithm, which helps agents understand the calculation behavior beyond the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the main verb 'compute', and conveys both the purpose and the method without any extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter calculator with an output schema, the description is fully adequate. It specifies the input range, the exact computations performed, and the algorithm used, while the output schema handles return-value expectations. No missing context for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full coverage of the 'year' parameter with a detailed description, minimum/maximum constraints, and additionalProperties=false. The description repeats the year range but adds no meaning beyond what the schema already states, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'compute' and names the exact resources: Western (Gregorian) Easter Sunday, Eastern Orthodox Easter, and related liturgical dates (Ash Wednesday, Palm Sunday, Good Friday, Pentecost). It also specifies the year range and algorithm, making it clearly distinct from any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the valid year range (1583-4099) and the scope of what the tool calculates, giving a clear context for when to use it. It does not explicitly mention alternatives or exclusions, but no close sibling tool exists, so this is not a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
energy-converterARead-onlyIdempotentInspect
Convert between energy units: joule, kilojoule, calorie (thermochemical), kilocalorie, watt-hour, btu.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit. | |
| value | Yes | Energy value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds one useful clarification ('calorie (thermochemical)') but does not disclose behavioral details such as rounding, precision, or handling of edge cases. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with a clear verb and all relevant unit names. No filler, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, stateless converter with complete input schema coverage, an output schema, and safety annotations, the description fully covers the essential purpose and unit set. No additional prerequisite, environment, or behavioral context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already documents all three parameters with 100% coverage and enums for from/to. The description adds meaningful semantic nuance by specifying that 'calorie' is thermochemical, disambiguating it from other calorie definitions not captured in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action ('Convert between energy units') and enumerates the exact unit set (joule, kilojoule, calorie, kilocalorie, watt-hour, btu), making it clearly distinct from sibling converters for length, temperature, volume, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use for energy conversions but does not explicitly state when to choose it over alternatives or mention exclusions. There is no 'use this tool when...' guidance, so usage context is only inferred from the tool name and unit list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fraction-simplifierARead-onlyIdempotentInspect
Simplify a fraction to lowest terms. Returns the simplified numerator/denominator, the decimal value, the gcd used, and the equivalent percentage.
| Name | Required | Description | Default |
|---|---|---|---|
| numerator | Yes | Numerator (integer). | |
| denominator | Yes | Denominator (integer, non-zero). |
Output Schema
| Name | Required | Description |
|---|---|---|
| gcd | Yes | Greatest common divisor used. |
| decimal | Yes | Decimal value of the fraction. |
| percentage | Yes | Fraction expressed as a percentage. |
| simplified | Yes | Simplified fraction. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses return values (simplified numerator/denominator, decimal value, gcd, percentage), going beyond the annotations which already indicate read-only and idempotent behavior. It does not mention edge cases, but the schema handles the denominator non-zero constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and return values with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, the rich annotations, and the presence of an output schema, the description is complete. It clearly states what the tool does and what it returns, with no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds some context by restating that numerator and denominator are the fraction parts, but does not provide additional syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Simplify') and resource ('a fraction'), and specifies the outputs. It distinguishes itself from sibling calculators by focusing specifically on fraction simplification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need to simplify a fraction) but provides no explicit exclusions or alternatives. No guidance is given for when not to use this tool or how it compares to related calculators like percentage-calculator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geometric-meanARead-onlyIdempotentInspect
Compute the geometric mean (n-th root of the product) of a list of positive numbers. Also returns the arithmetic mean for comparison.
| Name | Required | Description | Default |
|---|---|---|---|
| numbers | Yes | Array of positive numbers. Negative or zero values invalidate the geometric mean. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | How many numbers were summarized. |
| geometric_mean | Yes | Geometric mean (n-th root of the product). |
| arithmetic_mean | Yes | Arithmetic mean, for comparison. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent, so the description correctly avoids restating those. It adds behavioral detail by defining the mathematical operation (n-th root of the product) and noting the additional return of the arithmetic mean, which is not visible in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the core purpose and immediately follow with the key extra behavior. Every word earns its place, with no filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with one well-documented parameter and an output schema available, the description covers the essential purpose, input domain, and extra output. It is fully complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single parameter, including type, constraints, and the invalidity of negative/zero values. The description only restates that it is a list of positive numbers, adding no new semantic detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb ('Compute') and explicit resource ('geometric mean'), immediately clarifying what the tool does. It also notes the inclusion of the arithmetic mean, distinguishing it from a pure geometric-mean-only tool and from sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the input requirement ('list of positive numbers') and implies use when a geometric mean is needed. It does not explicitly contrast with siblings like average-calculator, but the added return of arithmetic mean provides context for when this tool might be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitignore-generatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| templateIds | Yes | Template 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
| Name | Required | Description |
|---|---|---|
| content | Yes | The merged, deduplicated .gitignore file text, ready to save. |
| ruleCount | Yes | Number of unique rule lines in the output (comments + blank lines excluded). |
| templates | Yes | Labels of the templates that contributed, in order. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnly/idempotent annotations by disclosing that rules from each selection are merged and duplicate lines are dropped silently, and that the result is file content ready to save. This provides valuable behavioral context that could affect user expectations, though it does not delve into deeper edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the purpose and the second covers behavior and output. Every word earns its place, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and detailed annotations, the tool description sufficiently covers the merging behavior, duplicate elimination, and output form. It is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for the single parameter, including a list of known template IDs and the minItems requirement. The description only indirectly references 'picking technologies' and adds no additional semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Build') and a specific resource ('.gitignore file'), and explains the approach (picking technologies). This unambiguously distinguishes it from sibling generator tools like cookie-consent-generator or dummy-data-generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies clear usage context: when you need a .gitignore file by selecting technologies, with rules merged and deduplicated. It does not explicitly mention alternatives or when not to use, but the tool's unique scope makes the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heartbeats-since-birthARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nowMs | Yes | The reference 'now' instant, as Unix epoch milliseconds. The widget passes Date.now(); MCP callers can pin a value for deterministic output. | |
| birthMs | Yes | Date of birth as a Unix epoch in milliseconds (the value returned by Date.getTime()). Must be on or before nowMs. | |
| restingBpm | No | Average 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. | |
| breathsPerMinute | No | Average breath rate per minute. Defaults to 16, the midpoint of the adult resting range (12–20) per the Mayo Clinic. |
Output Schema
| Name | Required | Description |
|---|---|---|
| breaths | Yes | Estimated total breaths since birth. |
| daysAlive | Yes | Whole days elapsed (minutes ÷ 1440, floored). |
| heartbeats | Yes | Estimated total heartbeats since birth. |
| restingBpm | Yes | The bpm value used for the calculation. |
| minutesAlive | Yes | Whole minutes elapsed between birthMs and nowMs. |
| breathsPerMinute | Yes | The breaths-per-minute value used for the calculation. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly and idempotent, but the description adds meaningful behavioral details: the default resting heart rate of 80 bpm, the ability to override it, and the specific output fields (heartbeats, breaths, minutes alive, days alive). This explains underlying assumptions without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three well-structured sentences: purpose, default assumption, and return values. Every sentence adds necessary information with no redundancy, and the main purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple stateless calculator, the description combined with the input schema and output schema provides complete context. It covers inputs, defaults, and returns, and edge cases like birthMs <= nowMs are handled in the schema. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% parameter description coverage, including defaults and constraints for birthMs, nowMs, restingBpm, and breathsPerMinute. The description only reiterates the 80 bpm default and override capability, adding no extra parameter-level semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Estimate the total number of heartbeats a person has had since birth' with specific verb (estimate) and resource (heartbeats since birth). It also specifies inputs (DOB, now timestamp) and outputs, distinguishing it from sibling date calculators like days-between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool (given birth date and reference timestamp), but does not explicitly mention exclusions or alternatives. Since no sibling tool offers heartbeat estimation, this level of guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hex-to-rgbARead-onlyIdempotentInspect
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 #.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex color string. Accepts #RGB, #RGBA, #RRGGBB, #RRGGBBAA, or the same forms without the leading #. |
Output Schema
| Name | Required | Description |
|---|---|---|
| a | Yes | Alpha channel (0-1, defaults to 1 if not present in input). |
| b | Yes | Blue channel (0-255). |
| g | Yes | Green channel (0-255). |
| r | Yes | Red channel (0-255). |
| rgb | Yes | CSS rgb() string. |
| rgba | Yes | CSS rgba() string. |
| hex_normalized | Yes | Normalized 6-digit hex string with leading #. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral details about accepted hex formats and optional # prefix, which goes beyond the annotations and clarifies handling of different input shapes. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loads the core action, and provides a concrete example followed by accepted input variations. Every sentence earns its place with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool with full parameter schema coverage and an output schema present, the description adequately specifies input constraints and output purpose. It supports the annotations and leaves no critical gap for a straightforward pure function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description of the hex parameter fully covers accepted formats (#RGB, #RGBA, #RRGGBB, #RRGGBBAA, with/without #). The tool description adds an example and reiterates the format set, but provides no additional semantic meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts hex colors to RGB and RGBA channel values, with a concrete example. It specifies accepted input formats (3-, 4-, 6-, and 8-digit hex with or without #), making it distinct from a broader color-converter sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you have a hex color and need RGB/RGBA values) but does not directly compare against alternatives like color-converter. There is no explicit when-to-use or exclusion guidance, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http-status-code-lookupARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search 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
| Name | Required | Description |
|---|---|---|
| results | Yes | Matching status entries in canonical order. |
| totalMatches | Yes | Number of entries returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so no contradiction. The description adds valuable context beyond annotations by naming the data source (RFC 9110/IANA) and detailing what the lookup returns (canonical name, scenarios, mistakes). No missing safety caveats are needed because the tool is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary purpose in the first sentence. It immediately states what the tool does, gives search examples, and lists return fields without any filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with one parameter and an output schema, the description is complete. It covers purpose, search syntax, data source, and return content. No critical information is missing, and the output schema handles formal return-value definitions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a very detailed description of the 'query' parameter, including example values and behavior. The tool description's search examples ('404', '4xx', 'not found') merely echo the schema's parameter description, adding no extra meaning beyond what the schema already provides. Baseline of 3 is appropriate due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Look up HTTP response status codes from RFC 9110 and the IANA registry.' It uses a specific verb ('look up') and resource, and further distinguishes itself by explaining search modes (code, category, free-text). This is a distinct lookup tool among the sibling calculators/generators, so it scores high.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear examples of when to use the tool ('Search by code (404), category (4xx), or free-text (not found)') which implies usage contexts like debugging. However, it does not explicitly mention when not to use it or name alternative tools. There are no exclusions, but explicit alternatives are missing, so it stays at 4 per the rubric.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
internal-do-not-callARead-onlyIdempotentInspect
Internal — do not call. (This is a honeypot; calling it bans your IP.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts the annotations: it warns that calling bans your IP, implying a side effect, while annotations declare readOnlyHint=true and destructiveHint=false. This is a serious inconsistency that could confuse an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence delivers the warning with maximum clarity and no wasted words. It is perfectly front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the annotation contradiction, the description alone is fully sufficient for an agent to know the tool is off-limits. No output schema or parameters exist, so nothing else is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so no parameter details are needed. The empty schema and 100% coverage make the baseline 4 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is unambiguous: this is an internal honeypot that must not be called. It uses a clear directive ('do not call') and explicitly states its nature, distinguishing it from all sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-not-to-use guidance ('do not call') and the consequence (IP ban). No alternatives are needed since the tool should never be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jet-lag-calculatorARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| toOffset | Yes | Destination time zone as a UTC offset in hours. Same range and units as fromOffset. | |
| fromOffset | Yes | Origin 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
| Name | Required | Description |
|---|---|---|
| tips | Yes | Evidence-based jet-lag countermeasures tailored to direction and severity. Empty when origin and destination are in the same zone. |
| severity | Yes | Severity band. none = 0 zones; mild = under 3 zones; moderate = 3 through 6; severe = more than 6. |
| toOffset | Yes | Destination UTC offset, echoed back. |
| diffHours | Yes | Absolute time-zone difference in hours (always >= 0, max 12 — eastward and westward routes are equivalent past 12 zones). |
| direction | Yes | Direction of travel relative to circadian rhythm. 'east' = clock advances at destination (harder). 'west' = clock falls back (easier). 'none' = same time zone. |
| fromOffset | Yes | Origin UTC offset, echoed back. |
| recoveryDays | Yes | Estimated days to full circadian re-alignment. Eastbound ≈ 1 day per zone; westbound ≈ 0.67 days per zone. Rounded to one decimal place. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent), the description discloses the core behavioral model: direction asymmetry with quantitative recovery rates (1 day per zone eastbound, ~2/3 day per zone westbound), and the exact output categories (severity band, recovery days, direction-specific tips). This provides deep transparency into how the tool computes and what it returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: purpose, behavioral rule, and output details. It is front-loaded with the main action and avoids any fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the annotations cover safety profile, the description completes the picture by explaining the algorithm directionality, output types, and even the nature of adjustment tips. There are no unresolved gaps for a calculator of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both fromOffset and toOffset are well described with ranges and examples. The description adds no additional parameter-specific meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Predict') and resource ('jet-lag severity and recovery time for a trip between two time zones'), clearly distinguishing this calculator from general time zone tools. It further specifies direction asymmetry and returns categories, which sets it apart from sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear the tool is for predicting jet lag between two time zones, which is a clear usage context. It does not explicitly mention exclusions or alternatives, but given the unique specialization, no close sibling competes directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json-formatterARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | Input JSON text. Must parse as valid JSON. | |
| mode | No | pretty: indent with spaces (default). minify: strip all whitespace. | |
| indent | No | Spaces of indent for pretty mode. Default 2. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | Mode used. |
| output | Yes | Formatted JSON string. |
| bytes_in | Yes | Length of the input string. |
| bytes_out | Yes | Length of the output string. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing that the tool validates input and returns a clear error on invalid JSON, which is not stated in the schema or annotations. It also explains the two output behaviors (pretty-print with indentation vs. minify). Since annotations already declare readOnlyHint, idempotentHint, and destructiveHint, the added behavioral context is valuable and non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and mode options, and includes a brief mention of the error handling. Every word contributes necessary information with no filler or redundancy. It is concise yet complete for a tool of this simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (3 params, all documented in schema), the presence of an output schema, and robust annotations (readOnly, idempotent, non-destructive), the description covers all necessary behavioral aspects: formatting modes, validation, and error reporting. It does not need to explain return values because the output schema exists, and the description adds appropriate context for the tool's usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all three parameters with descriptions (100% coverage), so the baseline is 3. The description adds modest context by explaining the 'pretty' and 'minify' modes, which corresponds to the 'mode' parameter, and implies validation for the 'json' parameter. However, it does not add significant detail beyond the schema's own parameter descriptions, such as defaults or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Format JSON') and resource ('JSON'), and distinguishes between two modes (pretty-print or minify). It also mentions validation, setting it apart from generic converters or calculators in the sibling list. The resource and action are unambiguous and fully aligned with the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when needing to format or validate JSON) and clearly distinguishes the two modes. It does not explicitly mention when not to use it or list alternatives, but the sibling tools are unrelated to JSON formatting, so no alternative is needed. The contexts of 'pretty-print' and 'minify' provide clear usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jwt-decoderARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The JWT to decode. Standard 3-part base64url-encoded format: header.payload.signature. |
Output Schema
| Name | Required | Description |
|---|---|---|
| header | Yes | Decoded header JSON. |
| expired | Yes | Whether the token has expired, or null if no exp. |
| payload | Yes | Decoded payload JSON. |
| issued_at | Yes | ISO timestamp from 'iat' claim, or null. |
| expires_at | Yes | ISO timestamp from 'exp' claim, or null. |
| not_before | Yes | ISO timestamp from 'nbf' claim, or null. |
| signature_present | Yes | Whether the signature segment is non-empty. |
| signature_verified | Yes | Always false — this tool does not verify signatures. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the critical behavioral fact that the tool does NOT verify the signature, which is beyond the annotations and essential for safe use. This fully discloses the tool's limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It leads with the core action, then adds the critical caveat. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the purpose, the key non-verification behavior, and usage caution. There is no need to explain return values since the output schema exists. The description is complete for safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter 'token' has a clear description including the expected format. The tool description does not add any additional parameter semantics beyond what the schema already documents, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Decode a JWT into its header and payload.' This clearly states what the tool does and distinguishes it from any potential verifier or other JWT-related tool. The mention of 'header and payload' makes the output explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'use this for inspection only' and warns 'never to trust the token's claims,' providing clear when-to-use and when-not-to-use guidance. However, it does not name any alternative tool for signature verification, so it falls slightly short of the highest bar for explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
length-converterARead-onlyIdempotentInspect
Convert between common length units: millimeter, centimeter, meter, kilometer, inch, foot, yard, mile.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit. | |
| value | Yes | Length value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'Convert' is consistent with a read-only, stateless transform. The description adds no additional behavioral context (e.g., rounding or precision), but none are necessary for this simple operation. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that lists all supported units without any fluff. It is front-loaded with the verb and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple, stateless nature, a complete input schema, and the presence of an output schema, the description fully covers the tool's purpose and context. No additional information about return values or edge cases is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with clear descriptions for value, from, and to, including enums for the unit fields. The description adds no extra meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Convert' and specifies the resource ('common length units') along with all eight supported units, clearly distinguishing it from similar converter tools like area-converter or weight-converter. The purpose is immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The enumeration of length units (millimeter, centimeter, meter, etc.) makes the usage context unambiguous: use this tool for length conversions. However, it does not explicitly name alternative tools or state exclusions, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| principal | Yes | Loan amount (principal). | |
| term_years | Yes | Loan term in years. | |
| annual_rate_percent | Yes | Annual interest rate as a percentage (e.g. 6.5 for 6.5%). |
Output Schema
| Name | Required | Description |
|---|---|---|
| months | Yes | Term in months. |
| principal | Yes | Principal, echoed back. |
| term_years | Yes | Term in years, echoed back. |
| total_paid | Yes | Total paid (principal + interest). |
| total_interest | Yes | Total interest paid over the life of the loan. |
| monthly_payment | Yes | Monthly payment amount. |
| annual_rate_percent | Yes | Annual rate, echoed back. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds transparency beyond the annotations by specifying the standard amortization formula and warning that all amounts share the same but unspecified currency. These are behavioral details not captured by the read-only/idempotent annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, with the primary purpose in the first sentence and key behavioral notes following. Every sentence adds value without repetition or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for this simple calculator: it covers the calculation type, formula, and currency caveat, while the output schema and annotations fill in the remaining structural details. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters, so the description doesn't need to repeat them. However, it adds the semantic note that principal and computed amounts use the same currency, which clarifies how to interpret the numeric values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb 'Compute' and names the exact financial outputs (monthly payment, total interest, total cost) and the loan type (fixed-rate amortizing). This clearly distinguishes it from the many other calculator siblings and states the tool's core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly defines the use case: fixed-rate amortizing loans, which implies it is not for other loan types. However, it does not mention any alternative tools or explicitly state when not to use it, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meeting-cost-calculatorARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| attendees | Yes | List 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_minutes | Yes | Meeting 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
| Name | Required | Description |
|---|---|---|
| total_cost | Yes | Total cost of the meeting in dollars, rounded to cents. |
| per_attendee | Yes | Per-role breakdown — same length as the input attendees array. |
| cost_per_hour | Yes | Sum of (rate × count) across all attendees — the 'burn rate' while the meeting runs. |
| cost_per_minute | Yes | total_cost / duration_minutes, rounded to cents. |
| total_attendees | Yes | Sum of attendee counts across all roles. |
| duration_minutes | Yes | Duration echoed from the input. |
| coffees_equivalent | Yes | total_cost ÷ $4.50 (mid-2025 US average chain latte), rounded down to whole coffees. |
| office_days_equivalent | Yes | total_cost ÷ $800 (fully-loaded daily cost per US knowledge worker), rounded to one decimal place. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context beyond that by listing the return values (total cost, per-attendee breakdown, cost-per-minute, order-of-magnitude comparisons). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with a parenthetical clarifying output examples. Every phrase earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with a robust output schema and full parameter descriptions, the description adequately covers when to use it and what it returns. No additional context is necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already provides rich descriptions for 'duration_minutes' and 'attendees' (e.g., 'fully loaded' explanation, count semantics). The tool description only mentions 'duration' and 'attendees with hourly rates', adding no meaningful detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Calculate') and resource ('total cost of a meeting'), clearly stating inputs and expected outputs. It distinguishes itself from sibling calculators like coffee-habit-cost-calculator or road-trip-cost-calculator by focusing specifically on meetings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you have a meeting duration and attendees with hourly rates. It does not explicitly name alternatives or exclusions, but the input requirements are clearly stated, making the usage context unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
molar-mass-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| formula | Yes | Chemical 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
| Name | Required | Description |
|---|---|---|
| formula | Yes | The original input formula, unchanged. |
| breakdown | Yes | Per-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). |
| molarMass | Yes | Molar mass in grams per mole (g/mol). |
| normalized | Yes | The input with whitespace stripped and unicode subscripts converted to ASCII digits. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavior beyond these: it parses standard notation including nested parentheses and hydrate dots, and returns both a total and per-element breakdown. This provides useful context without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences. The first sentence states the core function and output unit; the second explains parsing capabilities and return contents. Every phrase earns its place, with no wasted words or repetition of annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only calculator, the description is complete. It covers input syntax, supported notation variants, and output shape. Annotations (readOnly, idempotent, non-destructive) and an output schema exist, reducing the burden on the description to describe return values or safety. No critical gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the 'formula' parameter with examples and notation rules. The description's mention of 'nested parentheses' and 'hydrate dots' adds no new semantic value beyond what the schema already provides. Baseline 3 is correct when structured data carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Compute the molar mass (g/mol) of a chemical compound from its formula,' using a specific verb and resource. It clearly distinguishes itself from the many sibling calculator tools by specifying the exact domain (molar mass) and the input type (chemical formula).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool's scope and parsing capabilities, making it clear when it should be used. There is no explicit exclusion or naming of an alternative, but among the sibling tools, none offer molar mass calculation, so the usage context is unambiguous. A 4 is appropriate because guidance is implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nps-calculatorARead-onlyIdempotentInspect
Compute Net Promoter Score (NPS) from promoter / passive / detractor counts, or from a raw array of 0–10 scores.
| Name | Required | Description | Default |
|---|---|---|---|
| scores | No | Optional raw scores in 0–10. When provided, the engine buckets them itself and ignores `promoters`/`passives`/`detractors`. | |
| passives | No | Count of respondents who scored 7 or 8. Required if `scores` is not provided. | |
| promoters | No | Count of respondents who scored 9 or 10. Required if `scores` is not provided. | |
| detractors | No | Count of respondents who scored 0–6. Required if `scores` is not provided. |
Output Schema
| Name | Required | Description |
|---|---|---|
| nps | Yes | Net Promoter Score in the range −100 to +100. Rounded to the nearest whole number. |
| total | Yes | Total respondents counted. |
| rating | Yes | Bain & Company's standard NPS bands: <0 needs-work, 0–30 good, 30–70 great, >70 world-class. |
| npsExact | Yes | Unrounded NPS, useful when the caller wants extra precision. |
| passives | Yes | Resolved passive count. |
| promoters | Yes | Resolved promoter count (echoed back so the widget can chart it). |
| detractors | Yes | Resolved detractor count. |
| passivePct | Yes | Passives as a percentage of total, to one decimal. |
| promoterPct | Yes | Promoters as a percentage of total, to one decimal. |
| detractorPct | Yes | Detractors as a percentage of total, to one decimal. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the key behavioral fact that raw scores are auto-bucketed (and the schema clarifies that scores override counts), which is useful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that leads with the action and metric, then lists the two supported input forms. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple pure calculation; annotations cover read-only/idempotent behavior, the schema fully documents parameters and constraints, and an output schema exists for return values. The description supplies the remaining piece—what the tool computes and which inputs are accepted—so it is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter's bucket meaning and the mutual-exclusion rule documented in the JSON schema itself. The description only reiterates the two modes at a high level, so it adds minimal new semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact calculation ('Net Promoter Score') and the verb 'Compute,' and it specifies two distinct input modes (pre-aggregated counts vs raw 0–10 scores). This distinguishes it from the many sibling calculators by naming a unique metric.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool computes NPS from either counts or raw scores, giving clear context for when to choose it. It doesn't explicitly name alternative tools to use instead, nor does it state exclusions, but the context is unambiguous among the sibling calculators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npv-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cashflows | Yes | Expected 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_investment | Yes | Period-0 outlay as a positive number (e.g. 10000 for a $10,000 upfront cost). Subtracted from the discounted-cashflow sum. | |
| discount_rate_percent | Yes | Per-period discount rate as a percentage (e.g. 10 for 10%). Must be greater than −100. Negative rates are allowed but unusual. |
Output Schema
| Name | Required | Description |
|---|---|---|
| npv | Yes | Net Present Value. Positive → accept; negative → reject; zero → indifferent. |
| periods | Yes | Per-period breakdown. |
| decision | Yes | Plain-language verdict. Accept when NPV > 0, Reject when NPV < 0, Break-even when |NPV| < 0.01. |
| irr_percent | Yes | Internal 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_inflows | Yes | Sum of all cashflows in periods 1..N (undiscounted). |
| total_pv_inflows | Yes | Sum of all present values in periods 1..N. |
| initial_investment | Yes | Echoed back. |
| discount_rate_percent | Yes | Echoed back. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful return-value context (Accept/Reject decision, breakdown) but does not disclose any edge-case behaviors, such as the NPV decision rule (e.g., accept if NPV >= 0) or handling of multiple IRRs. This is acceptable given the strong annotations, but it leaves some behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and contains zero filler. Every sentence earns its place: the first states the primary function, the second lists the return values. This is an ideal level of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, comprehensive schema descriptions, presence of an output schema, and strong annotations, the description is complete. It covers the purpose, inputs, and outputs sufficiently for an agent to select and invoke the tool correctly. No critical gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (initial_investment, discount_rate_percent, cashflows) already having detailed descriptions. The tool description adds no additional parameter semantics beyond restating 'cashflows discounted at a given rate.' Per the calibration baseline, a score of 3 is appropriate when the schema fully covers parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs and resources: 'Compute Net Present Value (NPV) and Internal Rate of Return (IRR) for a series of cashflows discounted at a given rate.' It also lists the outputs (NPV, Accept/Reject decision, IRR, per-period present-value breakdown), fully distinguishing it from sibling tools like loan-calculator or discount-calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on what the tool does, which implies when to use it (for NPV/IRR calculations). It does not explicitly name alternatives or exclusions, but the sibling list contains no other financial-calculator tools, so confusion is unlikely. A minor gap is the lack of explicit 'when not to use' guidance, but the purpose is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palindrome-checkerARead-onlyIdempotentInspect
Test whether a word or phrase is a palindrome. Compares the input lowercased and stripped of non-alphanumeric characters against its reverse.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Word or phrase to test. |
Output Schema
| Name | Required | Description |
|---|---|---|
| length | Yes | Length of the cleaned input. |
| cleaned | Yes | Input lowercased and stripped of non-alphanumeric characters. |
| reversed | Yes | The cleaned input reversed. |
| is_palindrome | Yes | True if the input is a palindrome. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds valuable behavioral context: input is lowercased and stripped of non-alphanumeric characters before comparison. It does not explain return format, but output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler: the first states the core purpose, the second explains the algorithm. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity tool with a single parameter and an output schema. The description covers the essential normalization behavior, making it fully sufficient for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'text' described as 'Word or phrase to test.' The description adds normalization processing details but does not alter or expand parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Test whether') and a well-defined resource ('a word or phrase is a palindrome'), with exact normalization behavior (lowercased, stripped of non-alphanumerics) that distinguishes it from sibling tools like reverse-text or case-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is unmistakable: use this tool to test for palindromes. It doesn't explicitly name alternatives or exclusions, but the tool's niche is so distinct among siblings that no further guidance is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
passphrase-generatorARead-onlyIdempotentInspect
Assemble a Diceware-style passphrase from a list of words. Returns the joined string, the word count, and an entropy estimate in bits.
| Name | Required | Description | Default |
|---|---|---|---|
| digit | No | Optional decimal digit (0–9) appended to the end of the passphrase. Omit to skip the digit. | |
| words | Yes | The words to assemble into the passphrase, in order. Pick at least 2, at most 20. Each word must be non-empty. | |
| separator | Yes | Character placed between words. One of '-' (hyphen), '_' (underscore), ' ' (space), or '.' (dot). | |
| capitalize | Yes | When true, the first letter of each word is uppercased. When false, words are left as-is. | |
| dictionarySize | Yes | Size 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
| Name | Required | Description |
|---|---|---|
| strength | Yes | Coarse strength label based on entropy: <50 weak, 50–69 fair, 70–99 strong, ≥100 very strong. |
| wordCount | Yes | Number of words in the passphrase. |
| passphrase | Yes | The assembled passphrase, ready to copy. |
| entropyBits | Yes | Estimated entropy in bits, computed as log2(dictionarySize) × wordCount. Higher is harder to brute-force. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as safe, so the description's main contribution is disclosing the return payload—'the joined string, the word count, and an entropy estimate in bits.' This adds useful context beyond the annotations without any contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the primary action, the second summarizes the output. No wasted words, no repetition of schema or annotation content. It is front-loaded with the core purpose and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage, strong annotations, and an output schema, the description only needs to provide a high-level summary. It successfully communicates what the tool does and what it returns, which is sufficient for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all five parameters. The tool description adds no new parameter semantics beyond what the schema already provides; for example, dictionarySize's role in entropy is already documented in the schema. The baseline of 3 applies because the schema carries the full load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Assemble a Diceware-style passphrase from a list of words.' The verb 'Assemble' and the specific resource ('Diceware-style passphrase') define a unique purpose that distinguishes it from siblings like password-generator. It also mentions the return values, further clarifying scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you have a list of words to assemble into a passphrase), but it does not explicitly state when to use it over alternatives such as password-generator, and it offers no exclusions or alternative recommendations. Usage guidance remains implicit rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
password-generatorARead-onlyIdempotentInspect
Generate cryptographically random passwords. Caller controls length and character classes (uppercase / lowercase / numbers / symbols). Uses crypto.getRandomValues — strong enough for real passwords.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many passwords to generate. Defaults to 1. Max 50. | |
| length | No | Password length in characters. Defaults to 16. Min 4, max 128. | |
| numbers | No | Include 0-9. Defaults true. | |
| symbols | No | Include !@#$%^&*-_=+. Defaults true. | |
| lowercase | No | Include a-z. Defaults true. | |
| uppercase | No | Include A-Z. Defaults true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | How many passwords were generated. |
| length | Yes | Password length used. |
| passwords | Yes | Array of generated passwords. |
| pool_size | Yes | Size of the character pool the passwords were drawn from. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds valuable context by specifying the use of crypto.getRandomValues and the strength of the output. This goes beyond the annotations and helps the agent understand the security characteristics of the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and contains no unnecessary words. Every phrase adds value, and the structure is highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, the output schema exists, and the description covers the core purpose and security-relevant behavior. Combined with the schema and annotations, it provides sufficient context for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with clear descriptions for each parameter, so the baseline is 3. The description mentions 'character classes' and 'length' but does not add additional meaning beyond what the schema already provides, making it adequate but not exemplary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates cryptographically random passwords and lists the controllable character classes. It is specific and actionable, but it does not explicitly distinguish itself from the sibling 'passphrase-generator' tool, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for 'real passwords' and explains that the caller controls length and character classes, providing some context. However, it does not explicitly state when to prefer this tool over alternatives like passphrase-generator, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
percentage-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First number. Meaning depends on mode (see description). | |
| b | Yes | Second number. Meaning depends on mode. | |
| mode | Yes | Which percentage operation. 'of' = X% of Y, 'ratio' = X is what % of Y, 'change' = % change from X to Y. | |
| precision | No | Decimal places in the result. Defaults to 2. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Calculated result. |
| formula | Yes | Formula used to compute the result. |
| explanation | Yes | Human-readable description of what was computed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the three-mode breakdown but repeats information already present in the schema's mode description, offering minimal additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences: the first states the overall purpose, the second gives explicit mode mappings. No filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, all parameters are documented in schema (including precision), output schema exists, and the description explains all three modes. Nothing critical is missing for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing baseline 3. The description goes further by giving concrete examples of what X and Y mean in each mode ('what's X% of Y', 'what % is X of Y'), making parameter semantics more intuitive than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates percentages in three distinct ways, specifying the exact forms (X% of Y, X as % of Y, % change). This distinguishes it from sibling calculator tools and immediately conveys its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context by explaining the three operation modes and explicitly maps each mode to a use case. It does not mention alternatives or when not to use this tool, but for a percentage calculator the covered forms are comprehensive enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pressure-converterARead-onlyIdempotentInspect
Convert between pressure units: pascal, kilopascal, bar, psi, atmosphere, mmhg.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit. | |
| value | Yes | Pressure value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no further behavioral detail, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that lists the supported units, with no filler or redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool, the strong schema coverage, and the presence of annotations and an output schema, the description adequately conveys the tool's purpose without requiring more detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full descriptions for all parameters, and the enum values match the units listed in the description. The description adds no new semantic information beyond what the schema already specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts pressure units and enumerates all supported units (pascal, kilopascal, bar, psi, atmosphere, mmhg), making its purpose unambiguous and distinguishing it from other converter tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by specifying it converts between pressure units, which implies when to use it. It does not explicitly mention alternatives, but the unit list defines the scope precisely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prime-checkerARead-onlyIdempotentInspect
Test whether an integer ≥ 2 is prime. Returns the verdict plus the prime factorization (useful for composite numbers).
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | The integer to test. Must be ≥ 2. |
Output Schema
| Name | Required | Description |
|---|---|---|
| n | Yes | Input number, echoed back. |
| is_prime | Yes | True if n is prime. |
| factor_count | Yes | Number of prime factors (with multiplicity). |
| prime_factors | Yes | Prime factorization of n. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds value by disclosing that the return includes the prime factorization, which is a behavioral detail beyond what the annotations provide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero wasted words. It immediately states the core function and adds a useful note about factorization without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, stateless, read-only tool with a clear input schema and output schema, the description fully covers the essential behavior. It communicates the purpose and return value, and no additional context is needed for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage, including a full description for parameter n ('The integer to test. Must be ≥ 2.'). The tool description does not add any additional meaning about parameters, so it relies entirely on the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Test'), the resource ('an integer ≥ 2'), and the purpose ('is prime'). It also mentions the additional output of prime factorization, which fully distinguishes it from sibling tools (no other prime-related tool exists).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies exactly when to use this tool: when you need to test primality. It doesn't name alternatives or exclusions, but because no sibling tool provides similar functionality, the context is clear and unambiguous. A 5 would require explicit alternative guidance, which isn't necessary here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protein-intake-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | Body-composition goal. 'maintain' = current weight + recovery. 'build-muscle' = caloric surplus + hypertrophy training. 'lose-fat' = caloric deficit while preserving lean mass. | |
| weight | Yes | Body weight as a positive number, in the unit specified by weight_unit. | |
| weight_unit | Yes | Unit for the weight input. 'kg' = kilograms, 'lb' = pounds. | |
| activity_level | Yes | Self-reported activity. 'sedentary' = desk job, no training. 'moderately-active' = exercise 3-5×/week. 'very-active' = daily training. 'athlete' = competitive, multiple sessions/day. |
Output Schema
| Name | Required | Description |
|---|---|---|
| basis | Yes | Plain-English label for which band was used (e.g. 'Build muscle: 1.6-2.2 g/kg'). Useful for UI captions. |
| weight_kg | Yes | Body weight in kilograms (converted if input was lb). |
| g_per_kg_low | Yes | Lower bound of the recommended protein-per-kg range. |
| g_per_kg_high | Yes | Upper bound of the recommended protein-per-kg range. |
| g_per_kg_midpoint | Yes | Midpoint of the g/kg range — the single number to aim for. |
| grams_per_day_low | Yes | Daily protein in grams at the low end of the range. |
| grams_per_day_high | Yes | Daily protein in grams at the high end of the range. |
| grams_per_day_midpoint | Yes | Daily protein in grams at the midpoint — the recommended target. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is well-covered. The description adds context about output units and scientific references, but does not disclose potential limitations (e.g., applicability to healthy adults only) or justify assumptions. It is sufficient but not rich in behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first front-loads the purpose and outputs, the second adds credible references. There is no fluff, and every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a calculator tool with complete schema descriptions and an output schema, the description is fully adequate. It states outputs, references, and inputs, leaving no essential gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage of parameter descriptions, including enums and unit meanings. The description adds no parameter-specific details beyond what the schema already states, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to calculate daily protein intake recommendation in grams/day and grams/kg based on body weight, activity level, and goal. It uses a specific verb ('recommendation') and identifies the resource (protein intake) and inputs, distinguishing it from any calculator sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly tells the agent when to use this tool—whenever a protein intake recommendation is needed—and there are no competing sibling tools for this domain. However, it lacks explicit 'when not to use' or alternative tool references, so it doesn't fully meet the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random-numberARead-onlyIdempotentInspect
Generate one or more random numbers in [min, max]. By default returns integers; pass integer=false for floats. Uses Math.random() (not crypto-strong).
| Name | Required | Description | Default |
|---|---|---|---|
| max | Yes | Inclusive upper bound. | |
| min | Yes | Inclusive lower bound. | |
| count | No | How many numbers to generate. Defaults to 1. Max 1000 per call. | |
| integer | No | If true, returns integers only. Defaults to true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| max | Yes | Upper bound used (inclusive). |
| min | Yes | Lower bound used (inclusive). |
| count | Yes | How many numbers were generated. |
| integer | Yes | Whether integers were requested. |
| numbers | Yes | Array of generated numbers. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations that already mark it read-only, idempotent, and non-destructive, the description adds valuable behavioral details: it uses Math.random(), explicitly warns this is not cryptographically strong, and clarifies default integer behavior. This gives the agent critical information about randomness quality for sensitive use cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose, and every clause adds useful information. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple random-number generator with four well-documented parameters and an available output schema, the description covers purpose, safety, randomness quality, and configuration. It is complete enough for an agent to invoke correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description mostly mirrors the schema (inclusive bounds, integer default, count). It adds context by framing parameters in a usage sentence, but does not provide material meaning beyond the schema's own parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action ('Generate one or more random numbers in [min, max]') and clearly distinguishes the tool from siblings by explicitly covering range, count, and integer/float modes. It is unambiguous and self-contained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used whenever random numbers in a numeric range are needed, and explains how to switch between integer and float outputs. However, it does not mention alternatives (e.g., uuid-generator for random IDs) or explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recipe-scalerARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ingredients | Yes | Ingredient 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_servings | Yes | The serving count you want the recipe to produce. Must be > 0. Example: cooking for 6 instead of 4 → 6. | |
| original_servings | Yes | The serving count the recipe was originally written for. Must be > 0. Example: a recipe that says 'Serves 4' → 4. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ratio | Yes | target_servings / original_servings. |
| ingredients | Yes | One entry per non-empty input line, in input order. |
| target_servings | Yes | |
| original_servings | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by detailing the exact scaling formula, handling of unparseable lines, support for fractions/ranges, and the unit limitation. This gives the agent a strong understanding of edge cases and output behavior, complementing the readOnly and idempotent hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences each earn their place: first states the primary purpose, second explains behavior for edge cases, third clarifies a key limitation. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and fully described parameters, the description covers all necessary behavioral details: formula, pass-through cases, number formats, and unit handling. It is complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with clear descriptions and examples for each parameter. The description reiterates the scaling formula and pass-through behavior, which adds slight context but doesn't significantly improve parameter understanding beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Scale') and resource ('a recipe's ingredient quantities') with a clear outcome ('to a new serving count'). It distinguishes from sibling tools by focusing on recipe-specific scaling rather than generic calculators or converters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies usage for scaling recipe ingredient quantities and explicitly states what it does not do ('Does not convert between units'). While it doesn't name an alternative tool, it provides sufficient context for when to use this tool and when not to (e.g., for unit conversion).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regex-testerARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to test against. | |
| flags | No | Regex flags. Allowed: g, i, m, s, u, y. Defaults to 'g'. | |
| pattern | Yes | The regex pattern, without delimiters. Standard JavaScript regex syntax. |
Output Schema
| Name | Required | Description |
|---|---|---|
| flags | Yes | Flags used. |
| matches | Yes | First 100 matches with positions and captured groups. |
| pattern | Yes | Regex pattern, echoed back. |
| truncated | Yes | True if more than 100 matches were truncated. |
| match_count | Yes | Total number of matches found. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations: it discloses that all matches are returned with positions, captured groups, and named groups, and that the global flag is default so all occurrences are found. This complements the readOnlyHint and idempotentHint annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no redundant content. It front-loads the core purpose and immediately follows with output specifics and default behavior—every sentence carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations declare the tool as read-only and idempotent, the description sufficiently covers what the agent needs: the tool's purpose, the nature of its output, and a critical default behavior. No significant gaps remain for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage of parameter descriptions, so the baseline is 3. The description's mention of 'defaults to global flag' simply restates what the schema already documents for the 'flags' parameter, and no additional syntactic or format details are offered beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Test a JavaScript regex against text', which uses a specific verb and resource, immediately clarifying the tool's function. It further distinguishes itself by detailing outputs (matches, positions, captured groups, named groups) and the default global-flag behavior, separating it from any potential generic 'regex' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: whenever a JavaScript regex needs to be tested against text. There are no direct sibling tools that compete, and the note about defaulting to the global flag sets expectations for how results will behave, though it stops short of explicitly stating alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rem-to-pxARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rem | Yes | The REM value to convert. | |
| base_px | No | Base font size in pixels. Defaults to 16 (browser default). |
Output Schema
| Name | Required | Description |
|---|---|---|
| rem | Yes | Input REM value, echoed back. |
| pixels | Yes | Equivalent pixel value. |
| base_px | Yes | Base font size used. |
| em_equivalent | Yes | Equivalent em value (same as rem in this context). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent; the description adds the default 16px base and the optional base_px override. It also clarifies that REM is root-relative, adding useful behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the conversion, the default, and the optional parameter. Every phrase earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, rich annotations, and presence of an output schema, the description fully covers necessary information. It explains the conversion, default behavior, and adjustable base without needing to document return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% parameter coverage, including the 16px default for base_px. The description reinforces the meaning of REM but adds little beyond the schema's existing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it converts REM to pixels, specifying the base font size default. It names the exact units and conversion direction, distinguishing it from other converter tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (converting REM to px) and how to customize with base_px, including the browser default. It doesn't mention alternatives, but the context is clear and no exclusions are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse-textARead-onlyIdempotentInspect
Reverse a string character-by-character. Unicode-aware — handles emoji and combining characters correctly using Array.from on the iterator.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to reverse. |
Output Schema
| Name | Required | Description |
|---|---|---|
| output | Yes | Reversed text, Unicode-safe. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds valuable behavioral context about Unicode handling and implementation ('using Array.from on the iterator'), which goes beyond annotation information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, front-loaded with the core purpose. Every word earns its place; the implementation detail is relevant but not excessive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, one well-described parameter, existing output schema, and strong annotations, the description fully covers what an agent needs to know for correct invocation and result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter description 'Text to reverse.' The tool description adds context about how the text is processed (character-by-character, Unicode-aware), but this does not significantly augment the schema-provided meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Reverse a string') and resource ('string'), with additional specificity ('character-by-character'). It distinguishes from sibling text tools like case-converter and sort-lines by the unique verb and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool, particularly for Unicode-aware reversal ('handles emoji and combining characters correctly'), which sets expectations for usage. It does not explicitly mention alternatives, but the tool's singular function makes that less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
road-trip-cost-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tolls | No | Optional 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. | |
| distance | Yes | Round-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. | |
| travelers | No | Number 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_price | Yes | Fuel 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). | |
| attractions | No | Total 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_system | No | Which unit set the distance and fuel-economy inputs are in. 'imperial' = miles + MPG + $/gallon (default); 'metric' = kilometers + L/100km + price per liter. | |
| food_per_day | No | Average 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_economy | Yes | Fuel 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_days | Yes | Trip 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_nights | No | Override 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_night | No | Average 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
| Name | Required | Description |
|---|---|---|
| fuel_used | Yes | Total fuel consumed for the trip — gallons when `unit_system` is 'imperial', liters when 'metric'. Rounded to two decimals. |
| per_person | Yes | total_cost ÷ travelers, rounded to cents. |
| total_cost | Yes | Total trip cost in the input currency, rounded to cents. |
| unit_system | Yes | Unit system echoed from the input. |
| cost_per_mile | Yes | total_cost ÷ distance — the all-in cost per unit of distance. Per mile for 'imperial', per kilometer for 'metric'. Rounded to cents. |
| food_subtotal | Yes | Food cost: food_per_day × travelers × duration_days. |
| fuel_subtotal | Yes | Fuel-only subtotal — what gas costs you for the round trip. |
| lodging_nights | Yes | Number of paid lodging nights actually billed. |
| tolls_subtotal | Yes | Tolls subtotal, echoed from the input. |
| lodging_subtotal | Yes | Lodging cost across all paid nights. |
| attractions_subtotal | Yes | Attractions/activities subtotal, echoed from the input. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavior beyond the readOnlyHint/idempotentHint annotations by disclosing the return values (total cost, fuel-only subtotal, per-person split, cost per mile/km) and noting the unit handling. This gives agents a clear understanding of what the tool computes and returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose and immediately followed by supported inputs and outputs. Every word earns its place with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's complexity (11 parameters, output schema), the description covers the essential output categories and unit flexibility. Since an output schema exists, detailed return structure is already available, making this description complete for tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the 11 parameters already documented in detail. The prose description repeats a few parameter concepts (imperial/metric units) but does not add meaning beyond the schema. Baseline 3 is appropriate since the schema carries the semantic burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'estimate' and the resource 'total cost of a road trip', listing the cost components (fuel, lodging, food, attractions, tolls). It also distinguishes itself from sibling calculators by emphasizing road-trip-specific features like unit systems and per-person splits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for estimating road trip costs with support for imperial/metric units. However, it does not explicitly mention when not to use it or compare to alternatives like travel-budget-calculator, so it falls short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salary-to-hourlyARead-onlyIdempotentInspect
Convert an annual salary to hourly, daily, weekly, and monthly equivalents. Defaults to a standard 40-hour, 52-week schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| annual_salary | Yes | Annual gross salary in the same (unspecified) currency as the output. | |
| hours_per_week | No | Working hours per week. Defaults to 40. | |
| weeks_per_year | No | Working weeks per year. Defaults to 52. |
Output Schema
| Name | Required | Description |
|---|---|---|
| annual | Yes | Annual rate, echoed back. |
| hourly | Yes | Hourly rate. |
| weekly | Yes | Weekly rate. |
| monthly | Yes | Monthly rate. |
| daily_8h | Yes | Daily rate at 8 hours/day. |
| hours_per_week | Yes | Hours per week used. |
| weeks_per_year | Yes | Weeks per year used. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the agent knows this is a safe, non-mutating operation. The description adds the default 40-hour, 52-week behavior, which is useful context beyond annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that leads with the core action and includes the most important default behavior. Every word earns its place; no filler or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-purpose calculator, the description combined with full schema coverage and an output schema is complete. It explains the conversion types and defaults, and the agent can rely on schema for parameter details and output schema for return shape. No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter clearly documented in the input schema. The description's mention of the default schedule adds no new semantic meaning beyond what the schema already specifies. Thus baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it converts an annual salary to hourly, daily, weekly, and monthly equivalents, which is a specific verb+resource+output. It distinguishes this tool from sibling calculators by focusing on salary-to-time-period conversions. The default schedule note adds useful scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for converting annual salaries into various period-based equivalents, with a default 40-hour, 52-week schedule. It does not explicitly mention alternatives or exclusions, but the context makes the intended use obvious. No misleading guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scientific-notationARead-onlyIdempotentInspect
Convert a number to scientific and engineering notation. Returns the coefficient, exponent, and several human-readable forms.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | The number to convert. Accepts standard or already-in-scientific-notation values. | |
| precision | No | Significant digits in the coefficient. Defaults to 4. |
Output Schema
| Name | Required | Description |
|---|---|---|
| exponent | Yes | The exponent part. |
| standard | Yes | Standard decimal form. |
| scientific | Yes | Number in scientific notation (e.g. '4.5 × 10^-5'). |
| coefficient | Yes | The coefficient part. |
| engineering | Yes | Engineering notation form. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully known. The description adds only a note about return forms, which is already covered by the output schema, so it provides minimal additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-loaded with the main purpose. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a simple conversion tool with complete schema coverage, annotations, and an output schema, the description sufficiently captures the tool's function. It also explicitly mentions the dual scientific and engineering notation feature, which is valuable distinguishing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both n and precision with descriptions for each; schema_description_coverage is 100%. The description adds no additional parameter details, so it relies on the schema as baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action: converting a number to scientific and engineering notation. Clearly distinguishes from sibling calculators which handle other conversions. The mention of returns (coefficient, exponent, human-readable forms) reinforces the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for numeric notation conversion, which is clear given the name and description. Does not explicitly state when not to use it or mention alternatives, but the context of sibling converter tools makes the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sha256-generatorARead-onlyIdempotentInspect
Compute the SHA-256 hash of a text string. Returns the digest as a 64-character lowercase hex string. UTF-8 encoded.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to hash. UTF-8 encoded before hashing. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | Yes | 64-character lowercase hex digest. |
| algorithm | Yes | Hash algorithm name (always 'SHA-256'). |
| bytes_hashed | Yes | Number of bytes that were hashed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description goes beyond them by specifying that the output is a 64-character lowercase hex string and that input is UTF-8 encoded. This adds useful technical context about the hash behavior, though it doesn't discuss edge cases like empty input or maximum length (which is in the schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary action. Every word adds value: the compute verb, the algorithm, the input type, the output format, and the encoding. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple stateless tool with one well-documented parameter, an output schema, and annotations covering safety, the description is fully complete. It even states the return format, which is a nice bonus. No gaps remain for the agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter 'text' has a description stating it is UTF-8 encoded before hashing. The description's mention of UTF-8 encoding merely echoes the schema, adding no new semantic meaning. Baseline of 3 is appropriate because the schema already documents the parameter thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Compute') and a specific resource ('SHA-256 hash'), making the tool's purpose immediately clear. It distinguishes itself from siblings like base64 or uuid-generator by explicitly naming the algorithm and the text input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: computing a SHA-256 hash of a text string. It doesn't explicitly mention when not to use it or name alternatives, but the function is so specialized that the intended usage is obvious. No misleading exclusions are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sleep-debt-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| actual_hours | Yes | Actual 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_hours | Yes | Personal 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
| Name | Required | Description |
|---|---|---|
| severity | Yes | Banded severity for color-coding the result. 'none' = no debt; <6h mild; 6-12h moderate; 12-20h severe; >20h extreme. |
| recovery_nights | Yes | Estimated 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_hours | Yes | Cumulative 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_deficit | Yes | Per-night deficit (target - actual), clamped to 0. Same order as actual_hours. |
| worst_night_index | Yes | 0-indexed position of the night with the largest deficit (target - actual). -1 if no night was below target. |
| nights_below_target | Yes | Count of nights where actual_hours < target_hours. |
| average_actual_hours | Yes | Mean of actual_hours across all 7 nights, regardless of target. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and idempotent annotation hints, the description discloses what the calculation returns (total debt, per-night deficits, worst night, clearance estimate), mentions severity banding for UI color-coding, and adds an important educational-only disclaimer. This is rich, useful behavioral context with no contradiction to annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tightly written sentences with the main action front-loaded. Every sentence adds value: computation scope, return details/severity banding, and the educational disclaimer. There is no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple 2-parameter input, rich annotations, and presence of an output schema, the description is complete. It explains the purpose, expected outputs, severity presentation, and safety caveat, so an agent has enough context to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces 'personal target' but does not add parameter formatting or constraints beyond what the schema already provides. The schema descriptions for actual_hours and target_hours carry the substantive semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compute cumulative sleep debt across the last 7 nights given a personal target.' It precisely scopes the operation and clearly distinguishes it from sibling calculators like jet-lag-calculator or average-calculator. Listing the return outputs further clarifies exactly what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it is for computing sleep debt over the last 7 nights against a personal target. It also includes a when-not-to-use exclusion ('does not replace clinical sleep assessment'). However, it does not explicitly name alternative tools or contrast with sibling calculators, so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smoking-cost-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pack_price | Yes | Price 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_smoked | Yes | Years 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_day | Yes | Cigarettes 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_pack | Yes | Cigarettes per pack. Defaults to 20 (the US/EU standard). Override for 25-cigarette packs (Canada, Australia) or 10-cigarette packs. | |
| annual_return_percent | Yes | Optional 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
| Name | Required | Description |
|---|---|---|
| daily_spend | Yes | Cost of cigarettes smoked per day, in dollars. |
| total_packs | Yes | Total packs purchased (total_cigarettes ÷ cigarettes_per_pack), rounded. |
| total_spent | Yes | Total nominal dollars spent on cigarettes over years_smoked. |
| annual_spend | Yes | daily_spend × 365. The 'you'd save $X/year if you quit today' figure. |
| total_months | Yes | Number of monthly contributions (years × 12, rounded to integer). |
| monthly_spend | Yes | daily_spend × 365 / 12. |
| invested_value | Yes | Future 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_cost | Yes | invested_value − total_spent. Positive when the investment outgrows the cash spent (typical with positive return). Zero when return is 0%. |
| total_cigarettes | Yes | Total cigarettes consumed over the horizon (cigarettes_per_day × 365 × years). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses exact outputs (total spent, annual spend, invested future value, opportunity-cost gap), the default pack price and pack size, and the CDC context. These behavioral details help an agent set expectations accurately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary purpose, followed by outputs and defaults. No filler; every sentence carries functional value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and all inputs documented, the description complements the structured data by explaining the calculation logic, default assumptions, and return semantics. It leaves no major gaps for an agent deciding to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents all five parameters with rich descriptions, so the baseline is 3. The description goes further by stating the formula 'cigarettes per day × pack price × years' and clarifies how annual_return_percent drives the opportunity-cost comparison, adding relational meaning not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Compute'), names the resource (lifetime cost of a smoking habit), and gives the exact formula and return values, making it unambiguous and distinct from sibling cost calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not name alternatives or exclusion scenarios, but it provides clear context: it defines the calculator's scope (personal lifetime cost), notes US-average defaults, and clarifies the optional investment comparison. This gives sufficient guidance without explicit alternative pointers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sort-linesARead-onlyIdempotentInspect
Sort the lines of a text block. Options: ascending or descending, optional dedupe, optional case-insensitive compare.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Multi-line text. Each line is a separate sort key. | |
| unique | No | If true, dedupe lines as part of the sort. Default false. | |
| direction | No | Sort direction. Default asc. | |
| case_insensitive | No | If true, compare case-insensitively. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| output | Yes | Sorted text with newline-joined lines. |
| line_count | Yes | Number of lines in the output. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds the configurable behaviors but doesn't disclose edge-case handling (e.g., blank lines, line endings), though not essential for a simple utility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clear sentence, front-loaded with the core action. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple pure function with a well-specified schema and annotations. The description conveys the essential capability and options; output schema handles return documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description merely summarizes the options ('ascending or descending, optional dedupe, optional case-insensitive compare') without adding syntax, defaults, or nuanced details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'sort' with the resource 'lines of a text block', and enumerates options (ascending/descending, dedupe, case-insensitive) that clarify its scope and distinguish it from siblings like dedup-lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to choose this tool over alternatives like dedup-lines or case-converter. The use case is implied by the name and description, but no exclusions or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speed-converterARead-onlyIdempotentInspect
Convert between speed units: km/h, m/s, mph, knots, ft/s.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit: km/h, m/s, mph, knots, ft/s. | |
| value | Yes | Speed value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no extra behavioral context such as rounding behavior or return format, but this is not a significant gap for a simple converter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence: 'Convert between speed units: km/h, m/s, mph, knots, ft/s.' Every word adds value, and there is no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full parameter descriptions, comprehensive annotations, and existence of an output schema, the description is largely complete. It could mention rounding or precision, but that is not essential for a straightforward conversion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a description and enums for from/to. The description repeats the unit list but does not add meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Convert') and resource ('speed units'), and enumerates the exact units ('km/h, m/s, mph, knots, ft/s'). This distinguishes it from sibling converter tools like length-converter or temperature-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for speed conversions but does not explicitly state when to use this tool over alternatives, nor does it mention any exclusions. Given the many sibling converters, this is adequate but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
square-root-calculatorARead-onlyIdempotentInspect
Compute square root, cube root, square, and cube of a number. Returns all four so callers don't have to call four tools.
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | The input number. Must be non-negative for the square root branch. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cube | Yes | n³ |
| square | Yes | n² |
| cube_root | Yes | ∛n |
| square_root | Yes | √n |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, and destructive=false. The description adds that it returns all four results at once, which is not captured in annotations, providing useful behavioral context. The schema separately documents the non-negative constraint for square root, so the description adds value without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences deliver the main purpose and rationale without any wasted words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter calculator with a comprehensive schema, output schema, and annotations, the description fully covers what the tool does and why it returns multiple results. No additional behavioral context is needed; the schema and annotations handle the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the parameter n fully described including the non-negative constraint for the square root branch. The tool description itself does not add parameter semantics beyond saying 'of a number,' so the baseline of 3 applies—the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the computed operations (square root, cube root, square, cube) and notes it returns all four at once, distinguishing it from a tool that computes only one operation. This makes its purpose clear and specific beyond the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'so callers don't have to call four tools' provides clear context that this tool should be used when any of these calculations are needed, implying a convenience over calling separate tools. However, it does not explicitly name alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
temperature-converterARead-onlyIdempotentInspect
Convert between Celsius, Fahrenheit, and Kelvin. Pass value + from + to.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit. | |
| value | Yes | The temperature value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context beyond the conversion itself, which is acceptable but does not exceed the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the main purpose and immediately followed by minimal usage instructions. Every word is necessary and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool, the description provides sufficient context: supported units and required parameters. The presence of an output schema (indicated in signals) and comprehensive annotations fill any remaining gaps. Minor absence of edge-case handling is not critical here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter clearly described (value, from, to). The description's 'Pass value + from + to' adds no extra meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb (Convert) and resource (temperature scales Celsius, Fahrenheit, Kelvin), distinguishing it from sibling converters like angle-converter or length-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by naming the three units and explicitly instructing 'Pass value + from + to.' It does not mention when not to use or alternatives, but the intended use is obvious for a temperature converter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terms-of-service-generatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| paidPlan | Yes | True if any part of the service is paid. Triggers sections 8 (Billing) and 9 (Refunds). | |
| websiteUrl | Yes | Website URL where the service is offered (e.g. 'https://example.com'). Used in section 2. | |
| arbitration | Yes | True if disputes must be resolved by binding arbitration (rather than in court). Shapes section 15. | |
| companyName | Yes | Legal or operating name of the company that runs the service (e.g. 'Acme, Inc.'). | |
| serviceType | Yes | Shape of the service: 'saas' (software/app), 'ecommerce' (online store), or 'content' (publication/media). | |
| contactEmail | Yes | Email address users can write to with questions about the Terms (e.g. 'legal@example.com'). | |
| refundPolicy | Yes | Refund window. 'none' means no refunds; the others grant a money-back period from purchase. Ignored if paidPlan is false. | |
| effectiveDate | Yes | Effective date in any human-readable form (e.g. '2026-05-14' or 'May 14, 2026'). Empty defaults to today's ISO date. | |
| jurisdictionState | Yes | State, province, or region that governs the Terms (e.g. 'California', 'Ontario'). May be empty if not applicable. | |
| jurisdictionCountry | Yes | Country whose law governs the Terms (e.g. 'United States', 'Brazil'). | |
| userGeneratedContent | Yes | True if users can post, upload, or otherwise contribute content. Triggers section 5. |
Output Schema
| Name | Required | Description |
|---|---|---|
| document | Yes | The complete Terms of Service text, ready to copy or save. |
| sections | Yes | Section headings emitted, in order — useful for a table of contents. |
| wordCount | Yes | Word count of the rendered document. |
| disclaimer | Yes | Reminder that this output is a template, not legal advice. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply safety hints (read-only, idempotent, non-destructive). The description adds valuable context beyond that: the output is a plain-text template plus section headings, it is not legal advice, and an attorney should review it. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the verb and resource, uses three sentences, and every sentence earns its place: inputs, output, and caveat. It is concise without being under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 11 parameters, 100% schema coverage, output schema, and annotations, the description covers the necessary context: what it does, what it returns, and important legal limitations. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already explaining its role (e.g., 'Triggers sections 8 and 9'). The description summarizes the inputs but does not add meaningful detail beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Assemble') with an explicit resource ('a Terms of Service document'), lists the key input categories, and states the output format. This clearly distinguishes it from sibling tools like cookie-consent-generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: it generates a ToS template from a set of inputs. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions beyond the general 'not legal advice' caveat.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time-and-a-half-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hourly_rate | Yes | Base hourly wage in dollars. The straight-time rate before any overtime premium. | |
| regular_hours | No | Straight-time hours worked in the week. Defaults to 40 — the FLSA threshold above which time-and-a-half kicks in. | |
| overtime_hours | No | Hours worked past the regular threshold. Defaults to 0. These are paid at 1.5× the hourly rate. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context: the FLSA convention that hours past 40 are paid at 1.5×, and the formula for gross pay, which goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, well front-loaded with the core purpose and formula. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema plus description together cover inputs and calculation logic. The description could explicitly state the gross pay formula, but it is inferable from 'hourly × 1.5' and 'regular and overtime hours.' Given no output schema, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter well described. The description reinforces the meaning of regular and overtime hours but does not add significant new semantics beyond what the schema already states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Compute') and resource (time-and-a-half overtime rate and gross pay), with the formula explicitly given. This distinguishes it from sibling tools like salary-to-hourly or other calculators, as it is uniquely positioned for overtime pay calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for a week with regular and overtime hours and follows US FLSA convention. It does not explicitly name alternatives or exclusions, but the use case is well implied and no confusing overlap with siblings exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tip-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bill | Yes | Pre-tip bill amount, in the same currency as the output. | |
| split | No | Number of people splitting the bill. Defaults to 1. | |
| tip_percent | Yes | Tip percentage (e.g. 18 for 18%). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tip | Yes | Tip amount. |
| bill | Yes | Pre-tip bill amount. |
| split | Yes | Number of people the bill is split between. |
| total | Yes | Total bill including tip. |
| per_person_tip | Yes | Each person's share of the tip. |
| per_person_total | Yes | Each person's share of the total. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral context by noting that all amounts share an unspecified currency and that currency codes are irrelevant, which is beyond the annotations. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the purpose and adds a clarifying note about currency, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with an output schema, the description covers the main functionality and a key caveat. It doesn't mention rounding behavior, but given the output schema and annotations, the description is sufficiently complete. Slightly above the minimum due to the currency note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (bill, split, tip_percent) already described in the schema. The description does not add further parameter-specific meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compute') and clearly identifies the resource (tip, total, and per-person split for a bill). It distinguishes itself from sibling calculators by focusing on tip calculation, which is unique among the listed tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (for calculating tip on a bill), but it does not explicitly mention when not to use it or name alternative tools. This is a clear context without exclusions, so it earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
travel-budget-calculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Trip duration in nights/days. Must be a positive integer ≤ 365. Use the number of nights you'll be away. | |
| travelers | Yes | Number of travelers (adults equivalent). 1 for a solo trip, 2 for a couple, etc. Must be ≥ 1. | |
| destination | Yes | Trip 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_cost | Yes | Total 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_day | No | Per-person food and drink cost per day, in dollars. If omitted, the destination's reference default is used. | |
| lodging_per_night | No | Cost 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_day | No | Ground-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_day | No | Per-person activities cost per day (museums, tours, tickets), in dollars. If omitted, the destination's reference default is used. | |
| emergency_buffer_percent | No | Optional safety margin applied to the subtotal, 0–50%. 10–15% is a common cushion for unexpected costs. Defaults to 0. |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | Yes | Trip length echoed from the input. |
| total | Yes | Grand total trip cost, rounded to cents. |
| subtotal | Yes | Sum of the five line items before the emergency buffer is added. |
| breakdown | Yes | |
| travelers | Yes | Traveler count echoed from the input. |
| per_person | Yes | total / travelers, rounded to cents. |
| destination | Yes | Destination echoed from the input. |
| daily_average | Yes | total / days, rounded to cents. |
| daily_costs_used | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral context: automatic fallback to per-destination reference defaults (mid-2025 Numbeo-style) when costs are omitted, and the return shape (total, per-person, daily average, category breakdown). This exceeds what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, and each sentence earns its place: function, defaults behavior, and output summary. There is no fluff or redundancy. Ideal conciseness for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema (100% param descriptions), annotations, and presence of an output schema, the description need not explain every detail. It covers non-obvious behavior (defaulting, output breakdown) and is complete enough for an agent to invoke the tool correctly. No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all 9 parameters, including details like 'If omitted, the destination's reference default is used.' The description restates the category grouping but does not add additional parameter-level meaning beyond the schema. Per the baseline for high schema coverage, this is a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Estimate the total cost of a trip' with explicit categories (flights, lodging, food, activities, ground transport, emergency buffer). The destination scope (US domestic, Europe, etc.) further clarifies its resource. It distinguishes itself from sibling cost calculators like road-trip-cost-calculator by focusing on multi-category trip estimation rather than just driving costs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for estimating trip budgets, including optional per-destination defaults. It does not explicitly contrast with alternatives or state when not to use it, but the context is sufficient for an agent to select it appropriately. No misleading or exclusionary guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
truth-table-generatorARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | A 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
| Name | Required | Description |
|---|---|---|
| rows | Yes | Every row of the truth table. |
| canonical | Yes | Parenthesized canonical form of the input expression. |
| variables | Yes | Variable names in first-appearance order, upper-cased. |
| isTautology | Yes | True if every row evaluates to true. |
| isContradiction | Yes | True if every row evaluates to false. |
| subExpressionLabels | Yes | Sub-expression strings shown as extra columns, in evaluation order. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false), the description details the parsing of operators, enumeration of variable assignments, and the output of both row results and sub-expression values. It also explicitly states the maximum number of rows (64) and variable limit (6), which are important behavioral traits not captured in annotations. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct: two sentences that front-load the primary purpose, followed by essential details on operators, behavior, and limits. Every clause adds value, with no redundant or filler information. It is well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (which presumably details return structure), the description need not elaborate on return values. It covers all necessary operational aspects: what the tool does, supported operators, variable limits, and output granularity. This is complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a comprehensive description of the 'expression' parameter, covering operators, symbols, variables, constants, and limits (100% coverage). The description adds some context about parsing and output, but doesn't introduce new parameter-specific semantics beyond what the schema already states. Thus, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Generate the full truth table for a Boolean expression.' It clearly distinguishes this tool from siblings by focusing on truth-table generation, which is unique among the listed tools. It also outlines the scope (Boolean expressions, up to 6 variables) without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: whenever a full truth table for a Boolean expression is needed. It does not explicitly mention alternatives or when not to use it, but there are no obvious sibling tools with overlapping functionality. The operational constraints (up to 6 variables, supported operators) effectively guide the user on applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url-encoderARead-onlyIdempotentInspect
URL-encode or URL-decode a string. Uses RFC 3986 component encoding (encodeURIComponent semantics).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | encode: text → URL-encoded. decode: URL-encoded → text. | |
| input | Yes | Input string. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | Mode used, echoed back. |
| output | Yes | The encoded or decoded result. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral context beyond the annotations by explicitly stating 'RFC 3986 component encoding (encodeURIComponent semantics)'. This clarifies the exact encoding scheme, which is a meaningful addition. It does not contradict the readOnly/idempotent hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action and immediately follows with the technical detail. There is zero wasted wording, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with a complete input schema, an output schema, and safety annotations, the description is sufficient. It adds the RFC 3986 context, which compensates for potential ambiguity. Minor omissions like error handling on invalid input are not critical given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full descriptions for both parameters (mode with an explicit enum mapping, and input as 'Input string'), so coverage is 100%. The description adds no additional parameter-specific meaning beyond repeating the encode/decode functionality, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with specific verbs ('URL-encode or URL-decode') and a resource ('a string'). It distinguishes from siblings like base64 (different encoding scheme) and url-parser (parsing, not encoding) by specifying URL encoding and including the RFC 3986 detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: if you need to URL-encode or decode, use this tool. However, it does not explicitly mention when to prefer this over alternatives such as base64 or url-parser, nor does it provide exclusion criteria. The guidance is minimal but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url-parserARead-onlyIdempotentInspect
Parse a URL into its components: protocol, host, port, path, query parameters, hash. Returns the query string parsed into a key-value map.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to parse. Must include the protocol (http:// or https://). |
Output Schema
| Name | Required | Description |
|---|---|---|
| hash | Yes | Fragment identifier including leading '#', or empty. |
| host | Yes | Hostname plus port if present. |
| path | Yes | Pathname including leading slash. |
| port | Yes | Port number as a string, or null. |
| query | Yes | Raw query string including leading '?', or empty. |
| origin | Yes | Origin (protocol + host). |
| params | Yes | Parsed query parameters. |
| hostname | Yes | Hostname only. |
| protocol | Yes | URL protocol without trailing colon (e.g. 'https'). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating operation. The description adds return-format context (query string as key-value map) but does not disclose error behavior for invalid URLs, which is a minor gap given the schema's protocol requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and contains no redundant information. Every phrase contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter tool with rich annotations and an output schema, the description is largely complete. It explains what the tool returns and the key constraint (protocol required). It does not discuss edge-case errors, but given the tool's simplicity and existing schema, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the 'url' parameter is described with the protocol requirement. The description adds output-related semantics but does not deepen parameter understanding beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (parse), the resource (URL), and the specific output components (protocol, host, port, path, query parameters, hash). It distinguishes itself from siblings like url-encoder by focusing on decomposition rather than transformation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when a URL needs to be broken down into its components, but it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites beyond the protocol requirement in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uuid-generatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many UUIDs to generate. Defaults to 1. Max 100 per call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | How many UUIDs were generated. |
| uuids | Yes | Array of generated UUIDs. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, non-destructive, and idempotent behavior. The description adds valuable context beyond this: the return type is always an array of strings even for one UUID, and UUIDs are random. This helps callers handle responses correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence covers purpose and a key behavioral detail (array return) with no wasted words. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple tool with one optional parameter, full schema coverage, and an output schema. The description states the return type and behavior, and annotations cover the safety profile. Nothing important is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the 'count' parameter with min, max, default, and a clear description. The description's phrase 'one or more' reinforces the schema but adds no new semantic meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generate') and resource ('RFC 4122 v4 UUIDs'), clearly distinguishing it from sibling generator tools. It also specifies the random variant, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it (whenever a v4 UUID is needed) and there is no sibling tool for UUID generation, so exclusions are unnecessary. It doesn't explicitly state alternatives, but the singular purpose makes the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volume-converterARead-onlyIdempotentInspect
Convert between volume units: liter, milliliter, cubic-meter, gallon-us, quart-us, pint-us, fluid-ounce-us, cup-us.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit. | |
| value | Yes | Volume value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the supported unit list, but this is already present in the schema enums, providing no extra behavioral context beyond what is structured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that names the operation and enumerates the relevant units. There is no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple pure conversion with all parameters required and documented, output schema present, and annotations covering safety. The description is sufficient for the agent to understand and invoke the tool without additional behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: each parameter has a description and the enums list all units. The description merely repeats the unit list without adding meaning beyond the schema, so it meets the baseline for full coverage but no more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact operation ('Convert between volume units') and lists all supported units, which distinguishes it from other converter sibling tools (e.g., length-converter, temperature-converter). This fully clarifies the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool (any volume conversion) and the unit list makes its scope obvious relative to sibling converters. It lacks explicit exclusions or alternative recommendations, so it does not reach the 5-level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vowel-counterARead-onlyIdempotentInspect
Count vowels and consonants in text. ASCII-only — handles English-style letters. Returns vowel/consonant counts and the vowel ratio.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to analyze. |
Output Schema
| Name | Required | Description |
|---|---|---|
| words | Yes | Word count. |
| vowels | Yes | Vowel count. |
| letters | Yes | Total letters (vowels + consonants). |
| consonants | Yes | Consonant count. |
| vowel_ratio_percent | Yes | Vowels as a percentage of letters. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond annotations: the ASCII-only limitation (English-style letters) and the return of vowel/consonant counts plus vowel ratio. No contradictions noted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, and every word earns its place. The description is tightly written with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with a rich output schema and strong annotations, this description is complete. It covers the core behavior, the ASCII constraint, and the output shape, leaving no critical gaps for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the sole 'text' parameter is described as 'Text to analyze'). The description adds meaningful constraint 'ASCII-only', which sharpens the acceptable input beyond the schema's generic description, and also clarifies the analysis scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Count vowels and consonants in text', a specific verb+resource statement that clearly distinguishes this tool from sibling text tools like character-counter and word-counter. It adds the ASCII-only scope, further clarifying its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is so clear that the intended usage is implicit: use this when you need vowel/consonant counts and ratio. However, it does not explicitly name alternatives or exclusions, such as 'use character-counter for total character counts', so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weight-converterARead-onlyIdempotentInspect
Convert between common weight units: milligram, gram, kilogram, ounce, pound, stone, ton.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit. | |
| from | Yes | Source unit. | |
| value | Yes | Weight value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | Target unit, echoed back. |
| from | Yes | Source unit, echoed back. |
| value | Yes | Input value, echoed back. |
| result | Yes | Converted value in the target unit. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds no additional behavioral context (e.g., rounding, precision, supported value range). It is not contradictory, but it contributes nothing beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, clearly stating the action and the units. It is concise, front-loaded, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple converter with full schema, output schema, and annotations, this short description is adequate. It lacks any mention of edge cases or return formatting, but the structured data covers most needs, making it sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for all three parameters and enums for from/to. The description only lists the units already captured in the schema, adding no new semantic information such as constraints or format expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Convert' and clearly identifies the resource as common weight units, explicitly listing the units (milligram, gram, kilogram, ounce, pound, stone, ton). This distinguishes it from sibling converters like length-converter or temperature-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no explicit guidance on when to use it versus alternatives, nor does it mention when not to use it. The context of sibling converters implies its use for weight conversions, but there's no direct comparison or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weight-on-other-planetsARead-onlyIdempotentInspect
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².
| Name | Required | Description | Default |
|---|---|---|---|
| unit | Yes | Unit 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. | |
| weightOnEarth | Yes | Weight 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
| Name | Required | Description |
|---|---|---|
| unit | Yes | Unit 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. |
| planets | Yes | One row per body, in order from the Sun: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. |
| weightOnEarth | Yes | The input weight, echoed back. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat safety traits. It adds valuable context by citing the NASA Planetary Fact Sheet and explaining the ratio formula, which goes beyond the minimal state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core function, and the second sentence adds the source and formula. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the presence of an output schema, and robust annotations, the description is complete. It explains the input, the conversion logic, and the source of the data, covering all necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameter descriptions, including units and ranges. The description adds no new parameter information beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the function: given a weight on Earth, return equivalent weights on all eight planets plus Pluto. It uses a specific verb ('return') and a specific resource (weight on other planets), and it is easily distinguished from siblings like 'age-on-other-planets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: it is for converting Earth weight to weights on other planets. It does not explicitly mention alternatives, but the context is unambiguous and the tool name plus sibling list make the differentiation obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whitespace-removerARead-onlyIdempotentInspect
Remove or collapse whitespace in text. Modes: trim (edges only), collapse (also fold internal runs to one space), all (strip every whitespace character).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | trim: leading/trailing only. collapse: also collapse internal runs to one space. all: remove every whitespace character. Default: collapse. | |
| text | Yes | Text to clean. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | Mode used, echoed back. |
| output | Yes | Cleaned text. |
| removed | Yes | Number of characters removed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so safety is established. The description adds behavioral context by summarizing the three modes and their effects, going slightly beyond the schema by framing them in a single concise sentence. It does not cover edge cases like Unicode whitespace or newline handling, but that's acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with an efficient colon-separated list of modes. It front-loads the purpose and contains zero redundant words, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, one enum), the schema fully documents parameters and defaults, and the output schema is present. The description covers the core behavior and modes, so there are no significant gaps for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both `text` and `mode` have detailed descriptions, including the enum values and the default. The description largely repeats the mode semantics already in the schema, providing no new parameter meaning. This matches the baseline expected for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Remove or collapse whitespace in text') and then details three distinct modes. This makes it clear what the tool does and easily distinguishes it from sibling text tools like case-converter or reverse-text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly communicates when to use this tool—whenever whitespace needs to be removed or collapsed—and the mode breakdown provides clear context for each operation. However, it does not explicitly name alternatives or exclusion criteria, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
word-counterARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to analyze. Capped at 60,000 characters. Larger inputs should be split client-side. |
Output Schema
| Name | Required | Description |
|---|---|---|
| words | Yes | Word count. |
| sentences | Yes | Sentence count. |
| characters | Yes | Character count including spaces. |
| paragraphs | Yes | Paragraph count. |
| reading_minutes | Yes | Estimated reading time in minutes at 240 wpm. |
| characters_no_spaces | Yes | Character count excluding spaces. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds behavioral context about Unicode-awareness for non-Latin scripts and the 240 wpm reading-time assumption, which are not captured in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: one states the function, one adds a key behavioral note. The third about reading time is also brief and necessary. No filler or repetition of schema annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with full parameter documentation, a complete output schema expected, and annotations covering safety. The description covers the main function, Unicode handling, and reading-time assumption. Nothing important is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a detailed description of the 'text' parameter including the 60,000-character cap and client-side split guidance. The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'count' and enumerates the seven kinds of counts (words, characters, sentences, paragraphs, reading time) for a block of text. This distinguishes it from sibling tools like character-counter and vowel-counter, which likely target individual metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies usage: whenever the agent needs any of the listed text metrics. It does not explicitly name alternative tools or exclusions, but the breadth of counted metrics provides adequate context for selecting this tool over more specialized siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
year-progressARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | Reference 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. | |
| year | No | Override 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
| Name | Required | Description |
|---|---|---|
| year | Yes | The year being measured. |
| dayOfYear | Yes | 1-indexed day number within the year (Jan 1 = 1). |
| isLeapYear | Yes | True if the year is a leap year (366 days). |
| daysElapsed | Yes | Full days elapsed from Jan 1 00:00 to `at`. |
| progressBar | Yes | 20-character ASCII progress bar built from █ (filled) and ░ (empty), e.g. '████████░░░░░░░░░░░░'. |
| daysRemaining | Yes | Full days remaining from `at` to Dec 31 23:59:59.999. |
| percentElapsed | Yes | Percent of the year that has elapsed at `at`, 0-100, rounded to 4 decimals. |
| secondsElapsed | Yes | Seconds elapsed from start-of-year to `at`. |
| totalDaysInYear | Yes | 365 in normal years, 366 in leap years. |
| percentRemaining | Yes | Percent of the year remaining after `at`, 0-100, rounded to 4 decimals. |
| secondsRemaining | Yes | Seconds remaining from `at` to end-of-year. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive; the description adds behavioral detail by listing what the tool returns (percent elapsed/remaining, day-of-year, seconds, leap-year flag, ASCII progress bar). It doesn't detail edge cases like timezone handling, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with the verb, and all sentences earn their place—first states action, second lists outputs and use cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculation tool with full annotations, a 100%-described schema, and an output schema present, the description fully covers what the tool does, what it returns, and when to use it. No important information appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for both `at` and `year`, including format guidance and semantics for the year override. The tool description itself adds no parameter-level nuance beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb phrase ('Calculate how much of a calendar year has elapsed at a given moment') and enumerates the return fields (percent, day-of-year, seconds, leap-year flag, progress bar). This clearly distinguishes it from date-range siblings like days-between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the tool is 'useful for goal-tracking and 'how much of the year is left' moments,' giving concrete use cases. However, it does not explicitly name alternatives or exclusion criteria, so it stops at clear context without full comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityAmaintenanceGTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.Last updated111111MIT

industrylens-mcpofficial
Flicense-qualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.Last updated
Sociality MCPofficial
Alicense-qualityDmaintenanceSocial media analytics, post insights, and competitor benchmarking for AI agents.Last updated5MIT- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.Last updated1901MIT