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 already declare the tool as read-only, idempotent, and non-destructive. The description adds that it performs a specific statistical test and details the output. It does not mention assumptions like normal approximation, but this is minor for a standard calculator.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys purpose, method, and output list with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to detail return values. It sufficiently covers the tool's function for a standard statistical calculator. Minor omission of assumptions does not significantly impact completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all parameters. The tool description adds minimal extra meaning beyond clarifying that control_visitors is the denominator and that conversions cannot exceed visitors, which is already enforced by schema constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a two-proportion z-test for A/B conversion-rate experiments and lists all returned metrics (rates, confidence interval, lift, z-statistic, p-value, significance decision). It distinguishes itself from sibling 'ab-test-sample-size' by focusing on analysis rather than planning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing A/B experiment results by listing typical outputs. It does not explicitly state when to use or not use it (e.g., small sample sizes), but the context is clear given the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ab-test-sample-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 indicate readOnlyHint=true and idempotentHint=true, so the description only adds context about the statistical test type. It does not discuss assumptions (e.g., normal approximation) or potential edge cases, but for a calculator, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose and input requirements without redundant information, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and the tool's straightforward nature (computing a single numeric result), the description sufficiently covers the inputs and purpose, leaving no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by clarifying that 'minimum_detectable_effect' is a relative lift and that alpha is two-tailed. It also provides default values, which the schema does not include, enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it calculates the required sample size per arm for a two-proportion A/B test, specifying the test type and key inputs. This differentiates it from sibling tools like 'ab-test-calculator' which may handle broader A/B test calculations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists all necessary inputs and their defaults (alpha=0.05, power=0.80), guiding the user on what to provide. However, it does not explicitly state when to use this tool over alternatives or mention any constraints, leaving room for clearer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
age-on-other-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?
Discloses use of sidereal orbital periods from NASA Planetary Fact Sheet and Julian year for Earth, adding context beyond annotations which already indicate readOnly, idempotent, non-destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundant words. Front-loaded with purpose, then adds technical detail about orbital periods and calendar alignment.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple input (single number), full schema coverage, output schema exists, and annotations cover safety and idempotency, the description is complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already has detailed parameter description for ageEarthDays (range, units, decimal allowed). Description adds context about return: ages for eight planets plus Pluto, based on orbital periods.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'return' and specific resource: equivalent age in years on each of the eight planets plus Pluto. It distinguishes from sibling 'weight-on-other-planets' by focusing on age conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives. The purpose is implied through the tool's function, but no when-not-to or alternative suggestions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
angle-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, which inform the agent that the tool is safe and idempotent. The description adds the specific supported units, providing useful context without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that conveys the tool's purpose without any superfluous words. It is front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, with a well-defined input schema and an output schema present. The description, combined with the schema and annotations, provides complete information for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all parameters. The tool description does not add additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts between angle units (degree, radian, gradian, turn). It uses a specific verb 'Convert' and lists the exact resources, distinguishing it from sibling converter tools like area-converter or length-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for converting angles but provides no explicit guidance on when to use this tool versus alternatives or any prerequisites. The purpose is clear, but no usage scenarios or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arctan-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=true (idempotent, non-destructive). Description adds value by explaining the output range and the mathematical relationship to tan(θ)=x. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each necessary. First defines function, second explains range, third gives alternative. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description implies return type (angle as number) and mentions units. For a simple math tool, this is sufficient. Could explicitly state return type, but not missing critical info.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions. Description adds context about unit default and output range, going beyond schema. Baseline 3 plus extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it computes arctan(x) (inverse tangent) in degrees or radians, explains the output range (-90° to 90°), and distinguishes from two-argument arctan (atan2). Verb+resource+scope are all clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use this tool vs atan2 ('use atan2 instead' for full-circle resolution). Also gives unit usage hints ('radians for math/physics, degrees for geometry/navigation/CAD').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
area-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 provide readOnlyHint, idempotentHint, and destructiveHint, which convey safety and idempotency. The description adds the list of supported units, which is behavioral context not in annotations. It does not mention return format or precision, but with output schema present, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates the purpose and supported units. No extraneous words or repetition of schema fields. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool with a rich schema (100% coverage, enums, output schema), the description is adequately complete. It covers what the tool does and which units are supported. It does not explain conversion behavior (e.g., precision), but that is standard and implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter having a basic description (e.g., 'Source unit.'). The tool description adds the list of units, which is already present in the schema's enum. Thus, the description adds no meaningful semantics beyond the schema, earning a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Convert between area units' and lists the seven supported units. It uses a specific verb 'Convert' and identifies the resource 'area units', which distinguishes it from sibling converters like length-converter or temperature-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or avoid this tool versus alternatives is given. However, given the naming and context (many sibling converters), the purpose is self-explanatory. A minimal viable score of 3 is appropriate; missing explicit context for when-not-to-use keeps it from higher.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aspect-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 readOnly/idempotent/destructive hints. Description adds that it returns simplified ratio and decimal, but doesn't disclose edge cases or limitations. Acceptable given annotations cover safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: function + usage context. No wasted words, front-loaded with action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with full schema and output schema, description provides complete context. No missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. Description adds no additional parameter details beyond schema. Baseline 3 per instructions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes the simplified aspect ratio and decimal ratio. It distinguishes from sibling tools, which are other converters, and gives specific use contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions useful contexts (image, video, screen, design) but lacks explicit when-not-to-use or alternative tools. Since no closely related siblings, 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
average-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 readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the specific statistics computed, which is useful context but does not reveal additional behavioral traits beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the tool's purpose and outputs. No extraneous information; every word earns its place. Could be slightly more structured but is adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (so return format is documented elsewhere), the description sufficiently covers what the tool does. For a simple calculator tool with one parameter, it is complete: it specifies the statistics computed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for the 'numbers' parameter. The tool description lists statistics but does not add deeper meaning or constraints beyond what the schema provides, so it meets the baseline without adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Compute summary statistics' and the resource 'list of numbers'. It lists exactly which statistics are computed (count, sum, mean, median, min, max, mode(s)), distinguishing it from siblings like 'geometric-mean' or 'percentage-calculator'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for summarizing numeric lists but does not provide explicit guidance on when to use this tool versus alternatives like geometric-mean or when not to use it (e.g., for single values). No when-not or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 description does not need to repeat safety. The description adds value by stating 'UTF-8 safe', which informs about character encoding handling. This goes beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two brief sentences. The first sentence establishes purpose, the second gives usage guidance. No unnecessary words; every sentence serves a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, an output schema exists (as per context), so return values need not be described. The description covers encoding/decoding direction, UTF-8 safety, and the two parameters. It is complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both mode and input well-described in the schema. The description restates the mode enumeration and adds 'UTF-8 safe', but does not significantly augment the schema's parameter documentation. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Encode plain text to base64 or decode base64 back to text.' It specifies the verb (encode/decode) and resource (base64 text), and it is distinguished from sibling converters since no other tool handles base64.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use each mode: 'Use mode='encode' for plain→base64, mode='decode' for base64→plain.' This gives clear context for usage, though it does not mention when not to use the tool or alternatives. For a simple tool, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bitwise-operations-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 indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that the tool returns results in decimal, hex, binary, octal, plus low-32-bit binary, and explains parsing rules. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose, operations, and output formats. It is well-structured and front-loaded, though it could be split into two sentences for slightly better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description adequately covers the return formats and parsing rules. It does not need to explain return values further. It is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with detailed parameter descriptions. The description reiterates the parsing logic and the role of 'b' but does not add significant new meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it runs bitwise operations (listing all ops) on BigInt operands and returns results in multiple formats. It is distinct from sibling tools which are other calculators/generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies which operations are available and that 'b' is required for binary operations and ignored for NOT. It also explains parsing based on 'base'. However, it does not explicitly state when to use this tool vs alternatives, though siblings are all different tool types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
board-foot-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. The description adds the computation formula and the definition of a board foot, providing behavioral context beyond the hints. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words: first states purpose, second provides formula and definition. Information is front-loaded and efficiently presented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool and excellent schema coverage, the description fully covers the purpose, formula, and definition. No output schema exists, but return value is easily inferred. Complete with no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description reinforces the formula. It adds practical context for thickness (nominal vs. actual) and examples, which supplements schema descriptions meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Compute board feet for lumber' with a precise formula and definition. The verb 'compute' and resource 'board feet' are specific, and the tool is clearly distinguished from numerous sibling calculator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the tool is for computing board feet for lumber, implying its usage context. However, it does not explicitly state when not to use it or compare to alternative tools, though the niche purpose makes it clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
box-shadow-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 cover safety (read-only, idempotent, non-destructive). Description adds that output is a copy-ready CSS string, which is helpful and consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first captures purpose, second details layers and output. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema, annotations, and output type stated, all necessary information is present for the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with clear descriptions. Description adds no extra parameter info beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Build a CSS box-shadow declaration from one or more shadow layers' with specific attributes, making purpose obvious and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-not or alternatives, but context is clear: it's the tool for generating CSS box-shadow values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
burn-rate-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 (readOnlyHint, idempotentHint) are consistent. The description adds that it returns a health label benchmarked to SaaS funding-stage expectations, which is behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the main computation. It is concise but could be slightly more structured (e.g., bullet points). No superfluous words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description covers key inputs and behavior. It explains the optional revenue parameter's effect. Missing explicit examples or edge cases, but sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value: for ending_cash, it explains cash-positive scenario; for monthly_revenue, it clarifies how it affects gross vs net burn and when to omit it. This goes beyond parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes gross burn, net burn, and runway for a startup, which is a specific verb+resource. It distinguishes itself from sibling calculators like loan-calculator or nps-calculator by focusing on startup financial metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use the tool: given starting cash, ending cash, period, and optional revenue. It implies usage for financial analysis but does not explicitly state when not to use or suggest alternatives. The health label context provides extra guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
case-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 readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no new behavioral context beyond what the schema provides. It does not disclose any traits like pure transformation or handling of edge cases. With annotations covering safety, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates the core functionality. It is front-loaded with the action and lists the specific case options. No wasted words or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (as indicated by context) and the input schema is fully documented, the description adequately covers the tool's behavior. It specifies the transformation and case options, which is sufficient for a simple utility. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for both parameters (text and case). The description only restates the case types already defined in the schema. It does not add any new semantic meaning beyond what the schema provides, so a baseline of 3 is justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Change the case of text' and lists four specific case options (UPPERCASE, lowercase, Title Case, Sentence case). This clearly identifies the tool's purpose and distinguishes it from siblings, as no other sibling tool handles case conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implicitly clear given the unique purpose among siblings. However, the description does not explicitly state when to use this tool versus alternatives or when not to use it (e.g., for non-standard locale rules). The context of sibling tools provides enough differentiation, but explicit guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
character-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 indicate readOnlyHint, idempotentHint, and destructiveHint (false). The description adds that it returns separate counts (with/without spaces) and references the 60k character cap, which is also in the schema but reinforces behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core function and examples, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description fully covers what the tool does and how to use it. The use case examples help an agent select it correctly among many text utilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'text'. The description does not add new semantic details about the parameter itself, only context for its use. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool counts characters with and without spaces, and provides concrete use cases (tweet or SMS length checks). It distinguishes from siblings like word-counter and vowel-counter by focusing on character counting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool (e.g., checking if text fits Twitter or SMS limits). However, it does not explicitly mention when not to use it or alternatives, though the sibling tools list implies alternatives like word-counter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cidr-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 indicate read-only, idempotent, non-destructive. Description adds detail about returned fields (network, broadcast, etc.), but doesn't cover edge cases like invalid input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that efficiently communicates the tool's function and outputs. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, description covers all expected return values. Provides complete picture for an IP calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description reinforces that 'cidr' or 'ip'+'mask' are alternatives. No new semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it parses IPv4 CIDR or IP+mask, returning network details. Distinct from sibling tools like angle-converter or area-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains when to provide CIDR notation or IP+mask. Lacks explicit 'when not to use', but context is clear given the tool's specific networking function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coffee-habit-cost-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=true, idempotentHint=true, destructiveHint=false. The description adds behavioral context: it's a pure calculation that returns total spent, future value, and gap, with a non-moralizing tone. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence explains the core comparison and formula; the second adds intent. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (mentioned in context), the description adequately covers the tool's behavior. It's a simple calculator, and the description plus annotations provide complete guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed parameter descriptions (e.g., drink presets with prices, fractional weeks). The description adds no new parameter-specific info, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: comparing nominal cost of a coffee habit against invested future value. It specifies the calculation and outputs, distinguishing it from siblings like coffee-ratio-calculator or smoking-cost-calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (to compare cost vs investment), but does not explicitly state when not to use it or name alternatives. The sibling set includes similar cost calculators, but the description's unique focus on compounding helps guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coffee-ratio-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 indicate readOnlyHint=true and destructiveHint=false. The description aligns with this and adds that the tool returns recommended grind and brew time, providing extra behavioral context. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the purpose and followed by usage instructions. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a detailed output schema and well-documented input schema, the description covers the main functionality and extra outputs (grind, brew time). It lacks explicit mention of the 'ratio' overrides but is otherwise complete for a simple calculation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema; it summarizes usage but does not elaborate on parameters like 'ratio' override or constraints. No extra value provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes coffee-to-water ratios for specific brew methods. It uses a specific verb-resource pair ('Compute the coffee-to-water ratio') and lists the methods, distinguishing it from sibling tools like coffee-habit-cost-calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to use the tool: pick a method, enter one variable, get the other. It does not explicitly mention when not to use or compare with alternatives, but the usage is straightforward given the list of sibling calculators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color-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, idempotentHint=true, and destructiveHint=false. The description adds the important behavioral detail of auto-detecting input format, which is beyond annotation. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with the core action. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single string parameter and an output schema (not provided but exists), the description fully covers what the tool does and how input is handled. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already lists accepted formats. The description reiterates auto-detection but adds little new semantic information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it converts colors between hex, RGB, HSL, and HSV, and auto-detects input format, distinguishing it from more specific sibling tools like 'hex-to-rgb'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys when to use (when needing color conversion) but does not explicitly state when not to use or provide alternatives. No exclusion criteria mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 (readOnlyHint=true, destructiveHint=false, idempotentHint=true) are consistent with a generator. The description adds that the banner persists the user's choice and dispatches a CustomEvent for analytics, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core function, the second lists inputs and key behaviors. It is front-loaded, concise, and every sentence adds 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?
Given the complexity (8 parameters, nested objects) and the presence of an output schema, the description covers all essential aspects: purpose, inputs, output nature (self-contained block, persistence, event dispatch). No 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?
The description summarizes the input parameters but adds no new meaning beyond what the schema provides (100% coverage). For example, 'position (top/bottom)' mirrors the schema's enum and description. Thus, it adds minimal value.
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's purpose clearly: 'Generate a copy-pasteable HTML+CSS+JS cookie consent banner.' It specifies the output and lists inputs. No sibling tool does this, so it's easily distinguishable.
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 indicates when to use it (when needing a cookie banner), but does not explicitly state alternatives or when not to use it. Given no similar tools in the sibling list, a score of 4 is appropriate.
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?
The description adds behavioral details beyond annotations: it computes next N fire times, accepts optional reference time for deterministic results, and limits computation count. This complements the readOnlyHint and idempotentHint annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the core purpose, and includes an example. Every sentence is informative and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential functionality for a parsing/computation tool. With an output schema present, the lack of detail about return values is acceptable. It could mention the output format briefly, but the annotations and high schema coverage fill the gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description restates the expression parameter with an example and implies the function of fromIso and nextCount, but does not add substantial new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool parses, describes, and computes next fire times for cron expressions. It specifies the exact input format and provides an example, distinguishing it clearly from sibling tools like calculators and converters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the required input format and gives usage context with an example. It does not explicitly state when not to use or list alternatives, but the tool's purpose is self-contained and clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data-storage-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?
The description explicitly states that conversions use binary (1024-based) sizing, which is key behavioral information. Annotations already indicate read-only and idempotent, so the description adds the specific binary sizing context. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, only two sentences, front-loaded with the core purpose and the critical detail about binary sizing. Every sentence is necessary and no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the full schema coverage, existing annotations, and presence of an output schema, the description is complete. It covers all essential aspects: purpose, units, and the binary sizing convention.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for each parameter. The description adds value by listing units explicitly and reinforcing that from uses binary sizing, which is also in the schema description. Baseline is 3 due to full coverage, but the description provides additional clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts between digital storage units and lists all supported units (bit, byte, kilobyte, megabyte, gigabyte, terabyte), distinguishing it from sibling converters like length-converter or temperature-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it uses binary (1024-based) sizing, which guides usage, but does not explicitly state when to use this tool versus alternatives (e.g., if a user wants decimal-based conversion, this tool is not appropriate). No exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
days-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?
Beyond annotations (read-only, idempotent, non-destructive), the description adds that it returns weeks, months, years, and uses inclusive absolute difference, providing valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose and followed by return details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and comprehensive annotations, the description covers all necessary context for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already describes both parameters with 100% coverage. The description adds no new parameter information beyond restating that they are ISO 8601 dates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it calculates days between two ISO 8601 dates, which is specific and distinct from sibling converter/calculator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the tool calculates date differences, which is the primary usage context. No explicit alternative or when-not-to-use guidance is needed given siblings are unrelated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dedup-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 readOnlyHint, idempotentHint, and destructiveHint, providing safety profile. The description adds behavioral details beyond annotations: order preservation and optional case-insensitive matching, which are not captured in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the main action ('Remove duplicate lines') and include essential behavioral nuances (case-insensitivity, order preservation) with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, annotations, and full schema coverage, the description is sufficient. It covers purpose, key behaviors (case-insensitivity, order preservation), and implicitly the use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters fully. The description mentions case-insensitive matching but does not add new meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it removes duplicate lines from a text block, specifies optional case-insensitivity, and explicitly notes that order is preserved (not sorted). This distinguishes it from the sibling tool 'sort-lines' which sorts lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the tool's purpose for deduplication and order preservation, implying when to use it. However, it does not explicitly mention when not to use it or directly compare with siblings like 'sort-lines', but the context of sibling tools provides sufficient differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discount-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 indicate readOnlyHint=true and idempotentHint=true. The description adds useful behavioral details about returned values (sale price, amount saved, discount percentage) beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence front-loading the action and results. Could be more structured but is efficient for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters, output schema exists), the description sufficiently explains the tool's function and output. No gaps for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The tool description does not add new semantic meaning beyond the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies a percentage discount to a price and lists the returned values. It is specific and distinct from sibling tools like percentage-calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs. alternatives such as percentage-calculator or tip-calculator. Usage is implied but unclear for an agent needing differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dollar-cost-averaging-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=true and idempotentHint=true, indicating safe, idempotent behavior. The description adds context about what the tool returns (final value, gains, CAGR, inflation-adjusted figures), which is complementary but not necessary given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, informative sentences. First sentence captures the core purpose, second lists outputs. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (optional inflation, lump-sum comparison) and presence of an output schema, the description adequately covers what the tool does and returns. All parameters are documented in schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: projecting DCA plan value and comparing with lump sum. It uses specific verbs like 'project' and 'compare', and lists outputs. This distinguishes it from siblings like NPV or loan calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While the purpose is clear, the description doesn't provide conditions for use or mention related tools like 'npv-calculator' or 'loan-calculator'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dummy-data-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 readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating safety and idempotence. The description adds beyond annotations by noting 'Each row is a consistent identity,' 'Public-domain data tables; pure JS; deterministic when a seed is passed,' providing extra behavioral context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the primary purpose, and every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich annotations and existing output schema, the description fully covers purpose, behavioral traits, and data source. It is complete for guiding use of this generator tool without missing critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, so the output format and field options are well-documented there. The description adds no new parameter semantics beyond the schema, fitting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Generate tabular test fixtures (JSON or CSV) from a chosen mix of fake fields,' which has a specific verb and resource, clearly distinguishing it from sibling generators like passphrase-generator or uuid-generator. It explicitly covers the purpose of creating consistent test data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating test data with consistent identities (e.g., first/last name match email) and notes determinism with a seed. It does not explicitly state when not to use or name alternative tools, but the context is clear enough for typical test data generation scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easter-date-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 provide readOnly, idempotent, and non-destructive hints. The description adds value by enumerating the specific dates computed (Ash Wednesday, Palm Sunday, etc.) and mentioning the algorithm, which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and contains no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown), the description does not need to explain return values. It adequately covers purpose, year range, algorithm, and related dates, making it complete for a single-parameter calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% as the 'year' parameter already has a description. The tool description does not add further meaning to the parameter, so it meets the baseline. No additional context is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes Western and Eastern Easter dates and related liturgical dates for a specified year range. It uses a specific verb 'compute' and resource 'Easter dates', distinguishing it from sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use (computing Easter dates) but does not explicitly state when not to use or compare to alternatives. The sibling list shows no similar tool, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
energy-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, idempotentHint, and destructiveHint, so the description carries less burden. It does not add behavioral details but does not contradict annotations; overall sufficient for a simple conversion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately communicates the tool's purpose. Every word adds value with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description combined with schema and annotations covers the essential aspects. A minor addition about rounding or typical use cases could enhance completeness, but it is already well-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a descriptive label. The description only lists units, adding no extra meaning beyond what the schema already provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function—converting between energy units—and lists the specific units supported, which distinguishes it from sibling converters for other physical quantities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when you need energy unit conversion) but provides no guidance on when not to use it or alternatives; the sibling tools handle other domains, but this is not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fraction-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?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by detailing return values (simplified fraction, decimal, gcd, percentage) and the core action of simplification, providing full transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys purpose and output. Every word is essential; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, rich annotations, and existing output schema, the description is fully complete. It covers purpose, behavior, and return values, leaving no gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters with 100% coverage. The description adds that denominator must be non-zero, a constraint not fully captured in schema validation, thus adding meaningful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool simplifies a fraction to lowest terms and lists return values. It distinguishes itself from sibling tools (e.g., converters, calculators) by focusing specifically on fraction simplification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for fractions but does not explicitly state when to use this tool instead of alternatives or provide exclusion criteria. Sibling tools vary widely, so more explicit guidance would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geometric-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 declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that the tool also returns arithmetic mean, providing extra context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words; purpose and additional return value are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity, complete schema and annotations, and existence of output schema, the description provides all necessary context. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the 'numbers' parameter including constraints (positive, non-zero). Description adds no additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Compute the geometric mean' and distinguishes from sibling tools like average-calculator by specifying the geometric mean and also returning the arithmetic mean for comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies when to use (computing geometric mean of positives) and implicitly contrasts with sibling average-calculator, but does not explicitly state when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gitignore-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?
Goes beyond annotations by explaining that duplicate rule lines are dropped silently and that rules from multiple picks are merged. Output is described as 'file content ready to save'. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and inputs, followed by behavioral details. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers merging, dedup, and output format. Missing error handling for invalid template IDs, but the tool is simple and schema provides validation. Output schema exists, relieving some descriptive burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value by listing known template IDs and clarifying that at least one is required. This provides concrete examples beyond the schema's generic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'build' and resource '.gitignore file' with the method 'picking technologies'. There is no ambiguity, and it easily distinguishes from sibling tools like 'cookie-consent-generator'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context (when you need a .gitignore file) but lacks explicit 'when not to use' or alternatives. Does not mention other approaches, but the sibling set makes it clear this is the only .gitignore tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heartbeats-since-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 indicate readOnly, idempotent, and non-destructive behavior. The description adds value by disclosing default heart rate (80 bpm) and breath rate (16 breaths/min), and listing return fields (heartbeats, breaths, minutes alive, days alive). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the main purpose and inputs, then adding defaults and outputs. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers all key aspects: inputs (birthMs, nowMs), optional parameters with defaults, and return values (heartbeats, breaths, minutes alive, days alive). It is complete for its domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description provides a high-level overview but does not add significant new meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates heartbeats since birth using given timestamps and default or overridden heart rates. It specifies the verb 'Estimate' and resource 'heartbeats', and the unique purpose distinguishes it from sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs to estimate heartbeats since birth, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it reference alternatives among sibling tools. It mentions default overrides but lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hex-to-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 indicate read-only and idempotent behavior, which aligns with a color conversion. The description adds specific input format details (accepts 3-, 4-, 6-, 8-digit hex with or without #), enhancing transparency without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences that convey all essential information. No redundant words, making it concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is complete: it explains input format variations and the output type (RGB/RGBA). An output schema exists, so return values are covered. No gaps remain for this straightforward conversion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'hex' is fully described in the schema (100% coverage). The description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: converting hex color to RGB and RGBA channel values. It uses a specific verb ('convert') and resource ('hex color to RGB and RGBA'). This distinguishes it from siblings like 'color-converter' which may be more generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., color-converter). There are no explicit when-to-use or when-not-to-use instructions, leaving an agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
http-status-code-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 indicate read-only and idempotent behavior. The description adds detail about return content (name, RFC, category, description, scenarios, mistakes) and sources, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the primary action. It is reasonably concise, though could be slightly shorter without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to detail return structure. It covers query formats, data sources, and the nature of results, providing complete context for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for 'query'. The tool description further clarifies valid formats (code digits, category '4xx', free-text), adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it looks up HTTP status codes, specifies sources (RFC 9110, IANA), and lists supported search types (code, category, free-text) and return fields. This distinguishes it from sibling calculator/utility tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating the tool's function, but does not explicitly mention when to prefer it over alternatives or provide exclusions. The context of sibling tools makes it clear, but explicit guidance would improve score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
internal-do-not-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?
Description contradicts annotations: annotations set readOnlyHint=true and destructiveHint=false, but description says calling it bans IP (destructive). This is a direct contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and front-loaded with critical warning. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter honeypot tool with no output schema, the description is fully complete: it explains what it is and the consequence of calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; description correctly omits parameter details. Baseline score 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Internal — do not call' and explains it is a honeypot that bans IPs. This clearly defines its purpose as a trap, distinct from sibling utility tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description directly instructs not to call it and warns of the consequence (IP ban), providing perfect usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jet-lag-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?
Annotations indicate safe, idempotent operation. The description adds valuable context: direction asymmetry formula, return fields (severity band, recovery days, tips). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences with front-loaded purpose and no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given few parameters and output schema (not shown but referenced), description covers key behaviors, return content, and usage context completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions. The tool's description does not add further parameter details; baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool predicts jet-lag severity and recovery time between two time zones, including direction asymmetry. It is specific and distinguishes itself from sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for jet-lag prediction but does not explicitly state when to use or not use this tool, nor mention alternatives among siblings. Minimal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json-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?
Description adds validation behavior and error reporting beyond annotations, which already indicate read-only, idempotent, non-destructive traits. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences that directly convey the tool's purpose and key behavior without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple formatting tool, the description covers all essential aspects: formatting options, validation, and error handling. An output schema exists, so return value details are not needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions the two format modes but does not elaborate on the indent parameter beyond what the schema already provides. With 100% schema coverage, description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool formats JSON by pretty-printing or minifying, with validation. This distinguishes it from sibling utility tools that serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. Usage is implied by the tool's function, but alternatives among siblings are not addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jwt-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?
The description adds critical behavioral information beyond annotations: it explicitly states that the tool does NOT verify the signature. This, combined with annotations (readOnlyHint, idempotentHint, destructiveHint), gives a full picture of side-effect-free inspection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action and output. Every word adds value, and the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a low-complexity tool. It specifies the output (header and payload), warns about no verification, and the presence of an output schema covers return values. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage and describes the token parameter adequately. The description does not add new semantic details beyond implying the token should be a JWT. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Decode', the resource 'JWT', and the output 'header and payload'. It also explicitly distinguishes from verification, ensuring the agent understands this is for inspection only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines: 'use this for inspection only, never to trust the token's claims'. This clearly indicates when to use (inspection) and when not to (for trust), effectively differentiating from verification workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
length-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, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds no further behavioral traits beyond listing units, which is already in the schema. Since annotations cover the key behaviors, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. It conveys the essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations and output schema (present but not provided), the description is mostly complete. It might omit handling of invalid units or edge cases, but for a simple converter, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters (value, from, to). The description redundantly lists the units but adds no extra semantic meaning beyond the enum values. Thus baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Convert' and resource 'length units', listing all supported units (millimeter to mile). It clearly distinguishes from sibling tools like angle-converter or temperature-converter by domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for converting between any two listed length units. While it doesn't exclude other tools, the sibling tools are all for different domains (angle, area, etc.), so the context is clear enough without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan-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?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety. The description adds that it uses the standard amortization formula and currency note, which provides minor extra context but no deeper behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, no wasted words. Very concise and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of loan calculations and the presence of an output schema, the description is mostly complete. It mentions the formula and currency. Minor missing details like compounding frequency or rounding, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all three parameters. The description does not add meaningful new information beyond what the schema already provides, so score is at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool computes: monthly payment, total interest, and total cost of a fixed-rate amortizing loan. It uses specific verbs and resource, distinguishing it from sibling calculator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage for fixed-rate amortizing loans, but lacks explicit guidance on when not to use or alternatives. However, given the sibling tools are unrelated, this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meeting-cost-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 indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool is safe and read-only. The description adds value by detailing the return values (total cost, per-attendee breakdown, cost-per-minute, order-of-magnitude comparisons) and the calculator nature, reinforcing behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, and no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage (100%) and the presence of an output schema (implied by description), the description is complete enough. It covers inputs, outputs, and the calculation's purpose. Minor omission: no example usage, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with detailed descriptions for both parameters (attendees and duration_minutes). The description does not add significant new meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Calculate the total cost of a meeting' and lists specific outputs (total cost, per-attendee breakdown, etc.). It distinguishes from sibling tools like coffee-habit-cost-calculator and road-trip-cost-calculator by targeting meeting cost specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. However, the sibling tools are for different domains (e.g., coffee, road trip), so usage context is implied. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
molar-mass-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 indicate safe, read-only, idempotent behavior. Description adds parsing support details (nested parentheses, hydrate dots) and output structure (per-element breakdown).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, description adequately covers input format and output summary. Complete for a single-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds valuable details on element symbol notation and supported formats beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool computes molar mass from a chemical formula, using specific verb+resource. Distinguishes from sibling tools which are other calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for computing molar mass but no explicit when-to-use or when-not-to-use guidance. No alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nps-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 and idempotentHint=true, covering safety and idempotency. The description adds no extra behavioral details (e.g., handling of zero totals, rounding). It is adequate but not enhanced beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no superfluous words. Every word adds value: action, resource, and two input methods.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and comprehensive parameter descriptions. The description covers the essential purpose and input modes. It does not mention NPS range (-100 to 100) but the output schema likely provides that. Slightly lacking in full context for a standalone description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description reinforces the two input modes but adds no semantic detail beyond the schema. Since schema coverage is high, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool computes NPS from two distinct input methods (counts or raw array), using specific verb 'Compute' and resource 'Net Promoter Score'. It clearly distinguishes from sibling calculator tools like average-calculator or npv-calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates two usage modes: from aggregated counts or raw scores. While it implies the trade-off between modes, it does not explicitly state when to prefer one over the other or when not to use the tool. However, given the tool's simplicity, it's fairly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
npv-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 indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by detailing the return values (NPV, Accept/Reject decision, IRR, per-period PV breakdown), which are not in the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences. The first sentence states the core function, and the second lists the outputs. No unnecessary words, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a calculator tool with a present output schema, the description covers the key inputs and outputs. It does not mention edge cases or rate limits, but the annotations cover safety. Overall, sufficiently complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already having a clear description. The tool description does not add additional meaning beyond the schema, which is acceptable. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes NPV and IRR for cashflows, using a specific verb ('Compute') and resource ('Net Present Value and Internal Rate of Return'). It distinctly identifies the tool's purpose, and there are no sibling tools with overlapping functionality, so differentiation is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., loan-calculator or nps-calculator). Usage context can be inferred from the financial nature, but no when-not or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
palindrome-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, so the agent knows it's a safe, idempotent read. The description adds behavioral details beyond annotations: lowercasing and stripping non-alphanumeric characters, which is not in the input schema. This gives the agent a precise understanding of the transformation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose ('Test whether a word or phrase is a palindrome') and then providing the algorithm. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, straightforward logic) and presence of an output schema, the description sufficiently covers the tool's behavior. It explains the normalization and comparison logic, which is all an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'text' described as 'Word or phrase to test.' The description adds meaning by explaining the preprocessing steps (lowercasing, stripping non-alphanumeric) and that the input is compared to its reverse, which is not in the schema description. This helps the agent understand the exact semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool tests whether a word or phrase is a palindrome, specifying the verb 'test' and the resource. It also explains the algorithm (lowercase, strip non-alphanumeric, compare to reverse), which distinguishes it from sibling tools like 'reverse-text' or 'case-converter'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not provide explicit guidance on when to use it versus alternatives. Since sibling tools are all different (e.g., angle-converter, word-counter), confusion is minimal, but no when-to-use or when-not-to-use context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
passphrase-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 indicate read-only, idempotent, non-destructive behavior; the description adds no extra behavioral context beyond the return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence that front-loads the main purpose and mentions return values without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, description sufficiently covers purpose and returns; no gaps for a generator tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; description does not add additional meaning to parameters beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it assembles a Diceware-style passphrase from a list of words, distinguishing it from sibling tools like password-generator which generates random passwords.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this vs alternatives like password-generator; usage is implied but not differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
password-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 indicate readOnly, idempotent, non-destructive behavior; description adds the detail that it uses crypto.getRandomValues, confirming strong cryptographic randomness for passwords.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with immediate purpose statement and no extraneous information, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool, full schema coverage, output schema exists, and annotations cover safety, the description adds the cryptographic guarantee and is fully complete for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the description merely groups parameters (uppercase/lowercase/numbers/symbols) without adding deeper semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Generate cryptographically random passwords' with specification of caller control over character classes, differentiating it from sibling tools like uuid-generator and random-number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for generating passwords with control over character classes and cryptographic strength, but does not explicitly mention when not to use or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
percentage-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 and idempotentHint=true, indicating safe, read-only behavior. The description adds context on the three calculation modes but does not introduce behavioral surprises.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the main purpose and then detail the modes. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and description, schema, and annotations together fully cover purpose, parameters, and behavior. Output schema exists so return format is documented elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds value by explaining the meaning of parameters relative to each mode, going beyond schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the tool calculates percentages in three distinct modes: 'of', 'ratio', and 'change'. It clearly distinguishes from sibling conversion/calculation tools on the same server.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use each mode with examples like 'Use mode='of' for the first form'. It eliminates ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pressure-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 description states 'Convert' which aligns with the non-destructive nature indicated by annotations. It adds no behavioral detail beyond what annotations already provide (readOnlyHint, destructiveHint, idempotentHint). There is no contradiction, but no added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence front-loads the verb and resource, including a comprehensive unit list. Every word serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward conversion tool with complete schema coverage and annotations, the description sufficiently names the operations and supported units. Output schema handles return format, and no additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description lists the units already enumerated in the schema, adding no additional semantic context beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts between pressure units, listing all supported units explicitly. It distinctly separates pressure-converter from sibling tools like angle-converter or temperature-converter, which serve different domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit usage guidance such as when to use or avoid. However, the tool's purpose is self-explanatory and siblings are distinct converters, so no direct competition. The annotations (readOnlyHint, idempotentHint) hint at safe use, but the description could include a brief note on appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prime-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 the tool as read-only, idempotent, and non-destructive. The description adds that it returns both a primality verdict and prime factorization, providing extra behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose and concisely adds the return value details. Every word contributes meaning; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, deterministic tool with a single parameter and an existing output schema, the description fully covers the necessary context: input constraint, behavior, and output content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a comprehensive description of parameter n (type, constraints, and purpose) with 100% coverage. The tool description does not add any further semantic meaning to the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('test'), the resource ('integer ≥ 2'), and the purpose ('is prime'). It also specifies the output (verdict and prime factorization), distinguishing it from sibling tools which are unrelated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly defines the usage context by specifying the input constraint (integer ≥ 2) and the nature of the output. However, it does not explicitly state when to use or avoid using the tool, though no alternative prime-checking tools exist among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protein-intake-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 indicate readOnly, idempotent, non-destructive. Description adds that it returns recommendations based on scientific references, which is useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, front-loaded with purpose and key inputs/outputs. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has output schema (stated in context), so return values are documented. Description covers inputs, outputs, and references. Missing: edge cases or error handling, but acceptable for a calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage. Description does not add parameter details but states the overall function. Baseline 3 per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it computes daily protein in grams/day and grams/kg from weight, activity, and goal. Unique among sibling tools which are mostly converters or other calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance, but no competing sibling tool exists. References provided but not alternatives. Minimal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random-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?
Adds important behavioral info beyond annotations: mentions non-crypto-strong nature and default integer behavior. Annotations already declare readOnlyHint and idempotentHint, so description complements well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences covering purpose, defaults, and limitation. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values not needed. Description covers input bounds, type, count limit, and cryptographic weakness – complete for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and includes defaults for count and integer. Description adds minimal extra: clarifies [min, max] inclusive and reinforces max count per call. Baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'generate' and resource 'random numbers' with bounds [min, max] and integer/float option. Unambiguous and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for non-cryptographic randomness via 'Math.random() (not crypto-strong)', but does not explicitly state when to use vs alternatives like password-generator or uuid-generator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recipe-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?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context on how it handles different quantity formats (fractions, decimals, ranges) and what passes through unchanged (e.g., 'to taste'). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences that front-load the purpose and then provide necessary details. Every sentence adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, full schema coverage, and presence of an output schema, the description covers all necessary aspects: purpose, behavior, parameter semantics, and limitations. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining the ingredient format with examples, clarifying that lines without parseable quantities pass through, and providing examples for serving parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scales recipe ingredient quantities to a new serving count. It specifies the verb 'scale' and the resource 'recipe ingredient quantities', and distinguishes itself from unit converters by explicitly stating it does not convert units.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool: to scale a recipe's ingredients to a different serving count. It also clarifies what it does not do (no unit conversion). While no explicit alternatives are given, the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regex-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?
Annotations already indicate readOnlyHint (true) and destructiveHint (false). The description adds context about default global behavior and output details (positions, groups) beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words, front-loaded with purpose. Every sentence provides useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (inferred), the description adequately covers the main behavior: output includes matches, positions, groups. It does not cover error handling, but that is acceptable for a utility tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all 3 parameters. The description adds value by clarifying the default 'g' flag behavior and the nature of the operation. This exceeds the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Test a JavaScript regex against text' and specifies the output includes matches, positions, captured groups, and named groups. This is a specific verb-resource combination that distinguishes it from sibling tools like converters and calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that default global flag finds all occurrences, which guides usage for exhaustive matching. It does not explicitly exclude alternatives, but given unrelated siblings, this is sufficient. Could be improved by mentioning when to use flags parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rem-to-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 declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds practical context (default 16px base, optional override) without contradicting structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and key detail (default base). No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool with a full input schema and an output schema (not shown but present), the description covers all needed context: purpose, default, and optional parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions). The description reiterates the default base but adds no new meaning beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Convert' and the resource 'REM to pixels', specifying the default base and the optional base_px parameter. It distinguishes itself from sibling converters (e.g., length-converter) by focusing on REM units.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use (when needing REM->PX conversion) but does not explicitly contrast with alternatives. However, given the narrow focus, the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse-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 indicate read-only and idempotent behavior. The description adds details about Unicode handling and internal implementation (Array.from), providing extra transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and key feature (Unicode-aware), no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple text reversal tool, the description covers behavior, the schema fully documents the parameter, and an output schema exists. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with a description for the parameter. The tool description further explains the reversal is character-by-character and Unicode-aware, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reverses a string character-by-character and is Unicode-aware, which is specific and distinguishes it from sibling tools that are converters or calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use it (reverse text), and sibling tools are unrelated, but no explicit exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
road-trip-cost-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?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read. The description adds that it returns total cost, fuel subtotal, per-person split, and cost per unit, which provides some output context but no unexpected behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose and listing key outputs. Every sentence is essential, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 11 parameters, 4 required, and presence of an output schema, the description covers the main components and unit support. It could briefly mention default behaviors (e.g., defaults for optional fields) but overall is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 11 parameters have descriptions that go beyond schema types, explaining units, defaults, and how values combine (e.g., food_per_day × travelers × duration_days). The schema coverage is 100%, and the descriptions add significant meaning, such as the tolls description clarifying its role in the fuel subtotal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates total road trip cost from multiple components (fuel, lodging, food, etc.) and returns detailed breakdowns. It distinguishes itself from sibling calculators like 'travel-budget-calculator' by being road-trip-specific with fuel economy and lodging logic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for road trip cost estimation but does not explicitly state when to use this versus alternative sibling tools like 'travel-budget-calculator' or 'coffee-habit-cost-calculator'. No when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salary-to-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 indicate read-only, idempotent, non-destructive. The description adds default schedule (40-hour, 52-week) and output types (hourly, daily, weekly, monthly), which provides useful context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence directly states purpose and defaults. No unnecessary words; optimal length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, description doesn't need to detail return values. It covers conversion types and defaults. Param descriptions handle other details. Complete for this simple conversion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions. The description adds context about the output (daily and monthly equivalents) that isn't in param descriptions, raising it above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it converts an annual salary to hourly, daily, weekly, and monthly equivalents, with clear verb 'Convert'. It distinguishes from sibling converters by specifying salary conversion, which no other sibling does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit instructions on when to use this tool versus alternatives. The description implies its use for salary conversion but doesn't provide when-not or contrast with similar tools like tip-calculator. Given its clear domain, it scores at the middle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scientific-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 indicate readOnlyHint=true and idempotentHint=true, signaling safety. The description adds return types but no additional behavioral details such as error handling or edge cases. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary action and outputs. Every word is necessary and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity and full schema coverage with annotations, the description adequately explains the return values. It lacks explanation of edge cases (e.g., zero) but is otherwise complete with the presence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, both parameters have descriptions. The tool description adds no further meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts numbers to scientific and engineering notation, specifying the returned outputs (coefficient, exponent, human-readable forms). This verb+resource description distinguishes it from sibling tools like angle-converter or fraction-simplifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for numeric notation conversion but does not explicitly state when to use it versus alternatives, nor does it provide exclusions or preconditions. The context of sibling converter/calculator tools makes the purpose clear, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sha256-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 indicate read-only, idempotent, non-destructive. Description adds UTF-8 encoding and hex output format, enhancing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no wasted words. Core information front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-param tool with clear annotations, the description fully covers purpose, input encoding, and output format. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameter with description. Tool description adds encoding detail but does not add significant new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (compute), resource (SHA-256 hash of text), and output (64-character hex string). It uniquely identifies the tool among siblings like angle-converter or word-counter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use when a SHA-256 hash is needed. No explicit exclusion, but siblings are diverse so context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sleep-debt-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?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, indicating safe behavior. The description adds the educational context and details about return values, which goes beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph of three sentences that front-loads the purpose, lists outputs, and adds a caveat. Every sentence is informative, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description adequately covers purpose, input semantics, and usage caveats. It provides a complete picture for a simple calculator tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%. The description adds extra guidance beyond the schema, such as ordering of actual_hours (most recent last) and qualification for target_hours (should reflect rested amount). This adds meaningful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes cumulative sleep debt over 7 nights given a personal target. It lists specific outputs (total debt, per-night deficits, worst night, recovery estimate), making the purpose distinct from sibling calculator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an educational caveat ('Educational only — does not replace clinical sleep assessment'), which implies appropriate use. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
smoking-cost-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?
Annotations indicate readOnlyHint=true and destructiveHint=false, which the description reinforces by focusing on computation without side effects. The description adds details about return values and defaults, providing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, front-loading the main purpose and calculation, followed by outputs and defaults. Every sentence adds essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (as per context signals) and detailed parameter descriptions, the description covers all necessary aspects: inputs, outputs, defaults, and context (US averages, CDC reference). It is fully adequate for an AI agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for each parameter. The description adds value by explaining defaults, examples (e.g., pack-a-day habit, NYC costs), and the optional nature of annual_return_percent, enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes the lifetime cost of a smoking habit and compares it to investment growth. It specifies the outputs (total spent, annual spend, invested future value, opportunity-cost gap) and distinguishes itself from similar tools like coffee-habit-cost-calculator by focusing on smoking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use the tool (e.g., 'Compute the lifetime cost') and includes default values for typical US scenarios. However, it does not explicitly state when not to use it or compare it to alternatives, but the purpose is clear for a calculator tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sort-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=true and idempotentHint=true. Description adds option details but no additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 11 words, front-loads the verb and noun. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple sorting tool with full schema coverage and an output schema, the description covers all necessary aspects: action, options, and constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description lists options (ascending/descending, dedupe, case-insensitive) which matches schema properties, but adds little meaning beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Sort the lines of a text block' with specific options (ascending/descending, dedupe, case-insensitive). Distinct from sibling 'dedup-lines' which only deduplicates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use over siblings like 'dedup-lines'. The purpose is clear, but the description lacks explicit when-to-use or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speed-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 the tool as read-only, idempotent, and non-destructive. The description adds no behavioral traits beyond the conversion operation, but the annotations carry the burden of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence (12 words) that front-loads the action and resource, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, annotations, and an existing output schema, the description provides all necessary context: the conversion action and the complete list of units. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for all three parameters. The description lists the units but does not add meaningful information beyond what is in the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Convert') and the resource ('speed units'), listing all supported units (km/h, m/s, mph, knots, ft/s), making it distinct from sibling conversion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool or when not to, nor does it mention alternatives. Usage is implied by the domain (speed) and sibling context, but no direct guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
square-root-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 readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds that the tool returns all four computed values, which is behavioral context beyond annotations. However, it doesn't discuss edge cases like negative inputs, though the schema addresses that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: first stating the action, second explaining the benefit. No wasted words, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (so return values are documented), the description is complete. It covers purpose, benefit, and the tool's composite nature. Annotations and schema handle the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the schema already describing parameter 'n' (non-negative for square root). The description does not add further semantics; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes square root, cube root, square, and cube of a number. This specific verb+resource combination distinguishes it from sibling tools, especially by noting it returns all four operations in one call, avoiding multiple tool invocations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the tool is for when you need any of these four operations, with the bonus of avoiding multiple calls. While it doesn't explicitly state when not to use, the context of sibling tools (none provide these individual operations) makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
temperature-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 provide readOnlyHint and idempotentHint, so the description adds minimal behavioral info. It doesn't detail output format or edge cases, but annotations cover safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. Information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full annotations, and output schema, the description is adequate. It could mention precision or return format, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parameters. The description does not add any extra meaning beyond 'Convert between...', thus baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the function: converting between Celsius, Fahrenheit, and Kelvin. This clearly distinguishes it from sibling tools like angle-converter or length-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description instructs to 'Pass value + from + to', which implies basic usage. While it doesn't explicitly state when not to use, the tool's name and context among other converters make alternatives obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terms-of-service-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 indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which the description does not contradict. The description adds context that the output is a starting template and not legal advice, aligning with the read-only and non-destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the tool's purpose, and concise. Every sentence adds value: defining inputs, output, and the non-legal disclaimer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters fully described in the schema and an output schema present, the description provides sufficient context about the output format and the template's preliminary nature. No further details are needed for a generator tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a clear description. The description enumerates inputs (company name, website, etc.) but does not add meaningful semantics beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool assembles a Terms of Service document from specified inputs and produces a complete plain-text document plus section headings. It is distinct from all sibling tools, which are calculators, converters, and other generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to generate a TOS template) and includes a disclaimer that it is not legal advice and requires attorney review. It does not explicitly state when not to use it (e.g., for legal contracts requiring custom drafting).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
time-and-a-half-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 indicate read-only, idempotent, non-destructive. Description adds the FLSA convention and calculation logic, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words, front-loaded with purpose. Efficiently communicates all necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool, complete description of inputs, calculation, and convention. No output schema needed; agent can infer return value. Well-rounded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value by noting default values for regular_hours (40) and overtime_hours (0), and explaining the overtime threshold. This enhances parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it computes time-and-a-half overtime rate and gross pay, specifying the FLSA convention. It distinguishes from sibling calculators like salary-to-hourly by focusing on overtime calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for US overtime calculations per FLSA, but does not explicitly state when not to use or mention alternatives. However, the context is clear enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tip-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 indicate readOnlyHint=true and idempotentHint=true. Description adds value by noting the engine is currency-agnostic ('doesn't care about currency codes'), which is a key behavioral trait. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with purpose, then a clarifying note. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with an output schema, the description covers the core functionality and critical behavior (currency agnostic). No gaps given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description does not add significant meaning beyond schema; it reinforces that all amounts use same currency, but that is already implied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it computes tip, total, and per-person split for a bill. Specific verb+resource distinguishes it from sibling tools like 'percentage-calculator' and 'discount-calculator'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives such as 'percentage-calculator' or 'loan-calculator'. The description only states what it computes, not in what scenarios it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
travel-budget-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 indicate readOnlyHint=true and destructiveHint=false, confirming no side effects. The description goes further by disclosing that the tool 'picks sane per-destination defaults... from a mid-2025 Numbeo-style reference table when a cost isn't provided.' It also details output components ('Returns total, per-person, daily average, and a category breakdown'). This provides full behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no extraneous information. It front-loads the core purpose ('Estimate the total cost of a trip') in the first sentence, then adds key details in the second. Every clause serves a purpose, achieving high information density with brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (9 parameters, 4 required) and the presence of an output schema, the description covers all necessary context: parameter defaults, output structure, and the optional buffer. It does not need to explain return values because the output schema exists. The description is complete for an AI agent to understand the tool's capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the tool description adds significant value by explaining default behavior for missing parameters ('when a cost isn't provided'), the source of defaults ('Numbeo-style reference table'), and the purpose of the emergency buffer. This contextualizes the parameters beyond their individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Estimate the total cost of a trip from flights, lodging, food, activities, ground transport, and an optional emergency buffer.' It specifies a specific verb ('estimate') and resource ('total cost of a trip'). Unlike sibling calculators (e.g., 'loan-calculator', 'coffee-habit-cost-calculator'), this tool focuses on travel budgeting with multiple categories, making it distinct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for trip planning but does not explicitly state when to use this tool vs. alternatives. It mentions per-destination defaults and the ability to provide custom costs. Since sibling tools are all different calculators, the context is clear enough, but explicit 'when to use' or 'when not to use' instructions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
truth-table-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?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds behavioral context: returns results for each row plus sub-expression values, supports up to 6 variables (64 rows). It does not specify error handling, but the conditional safety is clear. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences totaling ~70 words, with no filler. The purpose is stated upfront, followed by operators, algorithm summary, and constraints. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input constraints, operator set, output structure (rows + sub-expressions), and limits (6 variables). It is sufficient for an agent to understand the tool's capability. Minor omissions: precedence rules, parentheses handling, and error messages. But given the presence of an output schema (context signals), the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, giving a baseline of 3. The description enriches the 'expression' parameter by detailing specific operators, symbols, variable constraints (≤ 8 chars), and maximum distinct variables (6). This goes beyond the schema description, which only lists operators and symbols superficially.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Generate the full truth table for a Boolean expression.' It then lists supported operators, symbols, and output details (all variable assignments, sub-expression values), distinguishing it from sibling tools (which are mainly calculators, converters, and generators).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for Boolean analysis but provides no explicit guidance on when to use versus alternatives, nor any prerequisites or exclusions. Since there is no direct sibling for truth tables, the lack of alternative references is acceptable, but the description could still state ideal scenarios (e.g., 'Use this to evaluate logical expressions').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url-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?
Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the significant behavioral detail that encoding follows 'RFC 3986 component encoding (encodeURIComponent semantics)', which clarifies exactly how the encoding works. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys all essential information: the tool's purpose and the encoding standard. It is front-loaded with the key action and resource, leaving no room for redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (encode/decode with string input and output schema), the description fully covers the necessary context. It states both modes and the encoding standard, which is sufficient for correct usage. The presence of an output schema means return values are already documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides clear descriptions for both parameters (mode with enum, input with maxLength). The description adds the encoding standard context, further clarifying the behavior of the mode parameter. With 100% schema coverage, the description complements well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'URL-encode or URL-decode a string' with the specific verb and resource. It also specifies 'RFC 3986 component encoding (encodeURIComponent semantics)', which distinguishes it from any other URL-related tools like url-parser. The tool name matches the purpose exactly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for encoding/decoding strings for URLs, and the sibling tools context provides alternatives (e.g., base64, jwt-decoder). However, it does not explicitly state when not to use this tool or mention specific alternatives, so it lacks complete exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url-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, providing a safe read operation profile. The description adds that it returns components, but does not disclose error handling for malformed URLs or partial inputs. Without additional behavioral context, the description meets minimum requirements but lacks depth for edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Directly states purpose and output. Front-loaded with action verb and resource. Each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects, clear annotations), the description is adequate. It explains what the tool does and the output format. Minor omission: no mention of return type structure beyond query map, but output schema likely covers this. Score 4 for being nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single 'url' parameter is described as 'The URL to parse. Must include the protocol (http:// or https://).' The tool description reinforces that parsing produces components, but does not add new semantics beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: parsing a URL into components (protocol, host, port, path, query parameters, hash) and returning query string as key-value map. This is a specific verb+resource that distinguishes it from sibling utilities like url-encoder or other converters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. However, the purpose is straightforward, and the intended use is implied by the description of parsing URL components.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uuid-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 declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by specifying the return format (array of strings) and the behavior for single UUIDs, which is beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundant information. Every sentence adds value: first states purpose, second clarifies return type and behavior. Very concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, strong annotations, and an output schema exists), the description is complete. It covers purpose, return format, and guidance on parameter (implied by 'one or more'), leaving no ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'count' is fully described with min, max, and default. The description does not add additional meaning or constraints beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates RFC 4122 v4 UUIDs (random) and returns an array of strings. It distinguishes itself from siblings like random-number or password-generator by specifying the UUID standard and return format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that it generates one or more UUIDs and that the return is always an array, which guides usage. However, it does not explicitly mention when not to use it or provide alternatives, but the context of simple utility tools makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
volume-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. The description adds no extra behavioral context beyond the conversion purpose, so it meets the baseline but adds no additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly conveys the tool's purpose and supported units with no redundant information. It is appropriately front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, annotations covering safety, complete schema with descriptions, and an output schema, the description provides sufficient information for an agent to correctly invoke the tool. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter. The description lists the units already present in the schema enums, adding no meaningful extra meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it converts volume units and lists all supported units, making the verb and resource specific. The unit differentiation is sufficient given sibling tools are for other quantities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit when-to-use or when-not-to-use guidance. Usage is implied by the tool's purpose, but no explicit alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vowel-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, destructiveHint=false. Description adds ASCII-only constraint and specifies exact outputs (counts and ratio). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading key information: what it does, constraints, and outputs. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, the description covers purpose, input constraints, and return values. No missing elements for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'text' described as 'Text to analyze.' Description doesn't significantly add beyond schema, but clarifies ASCII-only handling. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it counts vowels and consonants, distinct from sibling tools like character-counter or word-counter. Specific verb 'Count' with clear resource 'vowels and consonants in text'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states ASCII-only and handles English-style letters, implying usage for English text and non-use for non-ASCII. Could be stronger by directly mentioning when not to use, but still clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weight-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 indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat those. However, the description adds no additional behavioral context (e.g., precision, rounding, or error handling) beyond the basic conversion action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action ('Convert between common weight units') and immediately lists the supported units. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema coverage, output schema presence, and informative annotations, the description provides sufficient context for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already documents the three parameters (value, from, to). The description lists the allowed units, which mirrors the enum values in the schema, adding marginal semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it converts between common weight units and lists the specific units (milligram, gram, kilogram, ounce, pound, stone, ton). This distinguishes it from sibling tools like length-converter or temperature-converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While the name and description imply use for weight conversion, there are no explicit instructions about prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weight-on-other-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 (readOnlyHint, idempotentHint, destructiveHint) indicate safe behavior. The description adds context by mentioning the use of NASA data and the gravity ratio formula, which goes beyond the annotations. However, it does not describe the return format or potential edge cases, but the output schema handles that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose, and contains no redundant information. Every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and detailed parameter descriptions, the description is complete. It explains the calculation method and source, allowing an agent to confidently use the tool without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with detailed descriptions for weightOnEarth and unit. The description adds minimal extra meaning (e.g., mentioning Pluto and the source) but does not significantly enhance understanding beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: given a weight on Earth, it returns the equivalent weight on each planet and Pluto. It specifies the units and the source (NASA Planetary Fact Sheet), distinguishing it from sibling calculators like age-on-other-planets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (for converting weight to other planets) but does not provide explicit guidance on when not to use it or alternatives. Sibling tools like age-on-other-planets exist, but the description does not differentiate usage contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whitespace-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 indicate read-only and non-destructive behavior. The description adds specifics on modes and their effects, providing additional behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with a list of modes, front-loaded with purpose. No wasted words; highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple text transformation tool, the description combined with input schema fully specifies behavior. Output schema exists but is not needed to explain return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions (100% coverage). The description adds the default value for mode, which is not in the schema, adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool removes or collapses whitespace, with specific verbs and resource. It distinguishes from siblings as a unique text utility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains each mode and when to use them, but does not explicitly state when not to use this tool or mention sibling alternatives. However, given the distinct purpose, it's clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
word-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, idempotentHint=true, and destructiveHint=false, so the agent knows it's a safe, idempotent read operation. The description adds that it is Unicode-aware and reading time assumes 240 wpm, but beyond that, no additional behavioral traits are disclosed. The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the key counts. Every sentence adds necessary detail (Unicode-awareness and reading time assumption). No unnecessary words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description covers all essential aspects: what it counts, assumptions for reading time, and character limits. The description is complete for an agent to understand the tool's function and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'text' is fully described in the input schema (maxLength, description about splitting). The description adds value by listing what metrics are computed (words, characters, sentences, paragraphs, reading time), which is not in the schema. This helps the agent understand how the input is processed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool counts words, characters, sentences, paragraphs, and reading time in a block of text. It distinguishes itself from sibling tools (mostly converters and calculators) by being a text analysis tool. The verb 'count' and the listed resources clearly define its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates what the tool does, making its usage context apparent. However, it does not explicitly differentiate from the sibling 'character-counter' tool, which may also count characters. Although the description covers more metrics, lack of explicit guidance on when to choose this over a similar tool slightly reduces the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
year-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 state readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context: the tool is pure, and callers should pass explicit values for reproducibility. It also explains behavior when 'at' is omitted (treated as 'now'). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with core functionality. Every sentence adds value: first sentence states what it does and what it returns, second sentence gives use cases. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (so return values are covered), the description completely captures the tool's purpose, parameters, and use cases. It mentions all return components and sufficient usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaning by explaining the role of 'at' and 'year', including an example of overriding the year. This goes beyond the schema's type/description to clarify intent and usage patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates calendar year progress, specifying exact output components (percent, day-of-year, seconds, leap-year flag, ASCII bar). It uses a specific verb 'Calculate' and resource 'calendar year progress', distinguishing it from sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context ('goal-tracking', 'how much of the year is left') and indicates it's for a specific moment. No explicit exclusions or alternatives are mentioned, but the purpose is narrow enough that guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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!