Skip to main content
Glama

Server Details

Over 200 free UK-focused calculators, converters and generators as MCP tools: take-home pay and National Insurance for 2026/27, VAT, stamp duty, mortgages, loans, savings, inflation since 1988, currency with live rates, dates and working days with bank holidays, unit conversions, health calculators, colour and text utilities, encoding, hashing, JWT and TOTP, and validators for IBANs and Bitcoin and Ethereum addresses. Every tool is read-only, stateless and computes on the spot; nothing you send is stored. Each result links to its source page on hopi.co.uk.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 195 tools

Disambiguation4/5

Each tool has a clearly specified niche (e.g., percentage_increase vs percentage_decrease vs percentage_difference), and the descriptions are precise. However, a few color and percentage tools overlap enough (e.g., hex_to_rgb vs colour_picker, percentage_change vs percentage_difference) to cause occasional misselection, so it is not a perfect 5.

Naming Consistency4/5

The naming pattern is consistently snake_case with a 'hopi_' prefix, and most tools end in a clear noun like 'calculator', 'converter', 'generator', or 'checker'. There is some variation in structure (e.g., 'hopi_add_working_days' vs 'hopi_age_calculator' vs 'hopi_hex_to_rgb'), but the convention remains readable and predictable, so I deduct only one point.

Tool Count1/5

At 195 tools, the server is far beyond any reasonable MCP scope. The calibration explicitly treats 50+ tools as an extreme mismatch, and this set is nearly quadruple that thresholdcars, making the surface unwieldy and likely to cause token bloat and selection difficulty for an agent.

Completeness4/5

For a collection of online calculators and converters, the coverage is remarkably broad: unit conversions, finance, health, time, text processing, encoding, and generators are all present. The one notable gap is a generic temperature converter (only Celsius/Fahrenheit and oven temperature are available), so it is not a perfect 5.

Available Tools

195 tools
hopi_add_working_daysAdd working daysA
Read-onlyIdempotent
Inspect

Add or subtract a number of working days (Monday to Friday) from a start date, optionally skipping England and Wales bank holidays. Dates use the YYYY-MM-DD format. Bank holiday data covers 2026 and 2027 only, so outside those years just weekends are skipped. Source: https://hopi.co.uk/add-working-days/

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYesNumber of working days to move (0 to 100000)
startYesStart date in YYYY-MM-DD format
directionNo'add' to count forwards, 'sub' to count backwards (default 'add')add
bankHolidaysNoAlso skip England and Wales bank holidays, not just weekends (default true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
daysNo
startNo
resultNo
summaryYes
weekdayNo
completeNo
warningsNo
directionNo
resultLongNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
daysSpannedNo
bankHolidaysNo
holidayCoverageNo
holidaysSkippedNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered; the description adds genuinely useful behavioral context by explaining that bank holiday data is only for 2026 and 2027 and that outside those years only weekends are skipped. It does not contradict the annotations.

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

Conciseness4/5

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

The main behavior is front-loaded and the description is compact; the source URL is marginally unnecessary for selection/invocation but does not add meaningful clutter. Overall, every substantive sentence earns its place.

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

Completeness4/5

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

The description, together with rich schema descriptions and output schema, covers most selection and invocation needs, including the important 2026/2027 bank-holiday limitation. It is slightly incomplete on edge-case behavior, such as how a weekend or holiday start date is treated when adding/subtracting.

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

Parameters4/5

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

With 100% schema coverage, the baseline is 3, but the description adds value by fixing date format ('YYYY-MM-DD') and, more importantly, the bank-holiday data limitation that directly affects the bankHolidays parameter. The add/subtract wording maps cleanly to the days and direction parameters.

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

Purpose5/5

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

The description names a specific operation—'Add or subtract a number of working days (Monday to Friday) from a start date'—with a clear resource and optional bank-holiday behavior. This also differentiates it from sibling hopi_working_days_calculator, which implies counting days between dates rather than shifting a date.

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

Usage Guidelines3/5

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

The use case is implied by the verb phrase and the 'optionally skipping... bank holidays' option, but there is no explicit mention of when not to use it or a named alternative such as hopi_working_days_calculator for counting working days between two dates. Clear context, but no explicit routing/exclusions.

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

hopi_age_calculatorAge calculatorA
Read-onlyIdempotent
Inspect

Work out an exact age from a date of birth, as of today or an optional 'as of' date. Dates use the YYYY-MM-DD format. Returns the age in years, months and days, the total days lived, and the next birthday. Source: https://hopi.co.uk/age-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
dobYesDate of birth in YYYY-MM-DD format
asOfNoOptional date to measure the age at, in YYYY-MM-DD format (defaults to today)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dobNo
asOfNo
daysNo
yearsNo
monthsNo
summaryYes
totalDaysNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
nextBirthdayInDaysNo
nextBirthdayWeekdayNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral detail by listing the computed outputs (years, months, days, total days lived, next birthday) and clarifying the optional as-of date behavior beyond the structured annotations.

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

Conciseness5/5

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

Three short sentences deliver purpose, input format, optional parameter behavior, and output enumeration with no filler. The most important usage detail is front-loaded, and the source URL adds provenance without bloating the description.

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

Completeness5/5

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

For a simple read-only calculator with rich annotations and a complete schema, the description covers what the tool does, what inputs it accepts, what it returns, and how dates should be formatted. Nothing essential is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters already have clear descriptions and date formats. The description adds only minor value by restating the optional as-of date and YYYY-MM-DD format, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('work out an exact age') and names the precise resource (a date of birth) with optional as-of-date semantics. It clearly differentiates this from date-related siblings like days_between_dates or working_days_calculator by focusing on exact age breakdown and next birthday.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: computing an exact age from a DOB, either today or at a chosen date. It does not explicitly name alternative tools or exclusions, but the use case is unambiguous enough for an agent to select it correctly among the many sibling calculators.

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

hopi_alcohol_unit_calculatorAlcohol unit calculatorA
Read-onlyIdempotent
Inspect

Work out UK alcohol units in a drink from its ABV (percentage) and volume (millilitres), using units = ABV x ml / 1000. Optionally give the number of those drinks per week to get a weekly total compared against the NHS low risk guideline of 14 units a week. Source: https://hopi.co.uk/alcohol-unit-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
mlYesVolume of the drink in millilitres, e.g. 175 for a medium glass of wine
abvYesAlcohol by volume as a percentage, e.g. 12 for 12% wine
drinksPerWeekNoOptional number of these drinks per week, to work out a weekly units total

Output Schema

ParametersJSON Schema
NameRequiredDescription
mlYes
abvYes
unitsYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds meaningful context: the formula, the optional weekly comparison against the NHS guideline, and a source URL – none contradicting annotations.

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

Conciseness5/5

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

Two sentences pack the formula, optional behavior, guideline reference, and source without redundancy. Front-loaded with the core action and formula, all information earns its place.

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

Completeness5/5

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

For a calculator tool, the description provides the calculation formula, optional weekly variant, health guideline comparison, and source. The output schema exists, so no need to describe return format. Nothing essential is missing for correct invocation.

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

Parameters4/5

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

Schema covers all parameters with examples (100% coverage), so baseline is 3. The description adds value by explicitly linking abv and ml to the formula and explaining drinksPerWeek's purpose, going beyond what the schema states.

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

Purpose5/5

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

Describes a specific calculation ('work out UK alcohol units') with the exact formula, distinguishing it from generic calculators. The optional weekly total further clarifies scope and differentiates from similar tools like event wine calculators.

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

Usage Guidelines4/5

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

Clearly implies when to use (when needing UK alcohol units from ABV and volume), and the optional weekly parameter adds a use case. No explicit alternatives or exclusions, but the context is strong enough for an agent to select it correctly.

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

hopi_alphabetical_orderAlphabetical order sorterA
Read-onlyIdempotent
Inspect

Sort the lines of a block of text into alphabetical order. Blank lines are dropped. Uses natural en-GB ordering so numbers within lines sort sensibly. Can sort ascending (A to Z) or descending (Z to A), and can ignore case. Source: https://hopi.co.uk/alphabetical-order/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to sort, one item per line
directionNo'asc' for A to Z (default), 'desc' for Z to Aasc
caseInsensitiveNoIgnore letter case when sorting (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
linesYes
resultYes
summaryYes
directionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
caseInsensitiveYes

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description reveals important behavioral traits: blank lines are dropped, natural en-GB ordering makes numbers sort sensibly, and both ascending/descending and case-insensitive modes are available. This gives the agent useful expectations that annotations alone do not provide.

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

Conciseness5/5

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

The description is tight and front-loaded: the core action appears first, followed by high-value behavioral details and options. The source URL is a minor but acceptable addition, and every sentence contributes useful information without redundancy.

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

Completeness5/5

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

For a simple sorting utility with a low parameter count and an output schema present, the description covers the inputs, key edge-case behavior, and available options. There is nothing essential missing for an agent to invoke the tool correctly.

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

Parameters3/5

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

The input schema already provides 100% coverage with clear descriptions for text, direction, and caseInsensitive. The description mostly restates these options ('ascending', 'descending', 'ignore case') and adds the natural-ordering nuance, but it does not provide substantial new per-parameter meaning beyond the schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Sort the lines of a block of text into alphabetical order.' It clearly distinguishes this from the many sibling text utilities by specifying line-level alphabetical sorting, and it names the exact operation without ambiguity.

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

Usage Guidelines4/5

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

The description makes the use case clear: sorting lines of text alphabetically, with optional direction and case sensitivity. It does not explicitly name alternatives or when-not-to-use conditions, but among the sibling tools no direct sorting alternative exists, so the context is sufficient for an agent to select it correctly.

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

hopi_angle_converterAngle converterA
Read-onlyIdempotent
Inspect

Convert an angle from one unit to another. Units: deg (degrees), rad (radians), grad (gradians), turn (full turns). Source: https://hopi.co.uk/angle-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe angle value to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYes
fromYes
valueYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds the source URL and the unit list, which are useful but not strictly behavioral traits. It does not disclose any potential edge cases, rounding behavior, or error handling, but given the simple nature of a converter and the annotation coverage, a mid-range score is appropriate.

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

Conciseness5/5

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

The description is two concise sentences with zero fluff. The purpose is front-loaded, followed by the unit list and a source reference. Every sentence adds value, and the structure is clean and immediately readable.

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

Completeness5/5

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

For a simple, read-only converter with a complete schema, output schema present, and annotations covering safety and idempotency, the description is fully adequate. It lists the units, provides the source, and states the core function. Nothing essential is missing for an agent to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with all three parameters (value, from, to) described. The description lists the allowed units, which mirrors the enums in the schema but adds no new meaning beyond what the schema already provides. Per the rubric, baseline 3 is correct when schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool converts angles between units, specifying the exact verb and resource. It lists the four supported units (deg, rad, grad, turn), which differentiates it from sibling converters like length, weight, or volume. The purpose is unambiguous and specific.

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

Usage Guidelines4/5

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

The description clearly implies when to use this tool: whenever an angle needs unit conversion. It doesn't explicitly mention alternatives or exclusions, but the tool name and description are self-explanatory. Since there are many converter siblings, the description's focus on angles is sufficient context for selection.

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

hopi_area_converterArea converterB
Read-onlyIdempotent
Inspect

Convert an area from one unit to another. Units: sqm (square metres), sqft (square feet), sqyd (square yards), acre (acres), ha (hectares), sqkm (square kilometres), sqmi (square miles). Source: https://hopi.co.uk/area-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe area value to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYes
fromYes
valueYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds no behavioral detail beyond the conversion action itself, such as precision, rounding, or handling of zero values; the source URL is non-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.

Conciseness4/5

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

The description is two sentences, front-loading the action and listing units. The source URL is a minor addition that does not significantly bloat the description, but it's not essential for tool invocation.

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

Completeness4/5

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

For a simple conversion tool with all parameters documented and an output schema present, the description covers the necessary info: the operation, the unit set, and source. Missing details like rounding behavior are not critical given the tool's simplicity.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for value, from, and to. The description adds the full unit names (e.g., square metres, square feet) that map to the abbreviated enum codes, which helps an agent interpret parameters correctly.

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

Purpose4/5

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

The description states 'Convert an area from one unit to another' with a specific verb and resource, and lists the seven supported units. However, it does not explicitly distinguish itself from sibling converters like length_converter or weight_converter, relying on the tool name for that differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, and no exclusions or prerequisites. It only states what it does, leaving the agent to infer applicability.

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

hopi_aspect_ratio_calculatorAspect ratio calculatorA
Read-onlyIdempotent
Inspect

Aspect ratio helper. In 'simplify' mode, give width and height to get the simplified W:H ratio, decimal ratio and nearest common ratio. In 'solve' mode, give a ratio (ratioW:ratioH) plus one of width or height to get the missing side. Source: https://hopi.co.uk/aspect-ratio-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'simplify' a width and height, or 'solve' a missing side from a ratio
widthNoWidth in pixels or units (simplify mode, or the known side in solve mode)
heightNoHeight in pixels or units (simplify mode, or the known side in solve mode)
ratioHNoRatio height part, e.g. 9 (solve mode)
ratioWNoRatio width part, e.g. 16 (solve mode)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
ratioYes
decimalNo
nearestNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent and non-destructive, and the description adds useful behavioral context by describing the outputs produced in each mode and including the source URL. There is no contradiction with the annotations.

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

Conciseness5/5

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

The description is concise and front-loaded with the tool's purpose, then splits into two clearly labelled modes. Every sentence adds value, and the source URL is placed at the end without cluttering the guidance.

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

Completeness5/5

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

For a stateless calculator with rich schema descriptions, read-only annotations, and an output schema, the description covers all necessary calling information: modes, input requirements, output types, and source. No critical usage detail is missing.

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

Parameters4/5

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

The schema already documents all parameters, but the description adds meaningful mappings for how parameters are used in each mode, including the important detail that solve mode requires ratioW:ratioH plus one of width or height. It also clarifies the intended ratio format. This goes beyond the flat property descriptions.

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

Purpose5/5

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

The description clearly identifies the tool as an aspect ratio helper and immediately explains its two modes: simplify width/height into W:H ratio, decimal ratio and nearest common ratio, or solve for a missing side from a ratio plus one known side. It is specific enough to distinguish this from sibling calculators like hopi_ratio_calculator.

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

Usage Guidelines4/5

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

The description gives explicit mode-based instructions: use 'simplify' with width and height, and use 'solve' with ratioW:ratioH plus one known side. It does not explicitly name alternatives or state when not to use the tool, but the mode guidance is clear and actionable.

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

hopi_average_calculatorMean, median & mode calculatorA
Read-onlyIdempotent
Inspect

Work out the mean, median, mode, sum, count, minimum and maximum of a list of numbers. Provide the numbers separated by spaces, commas, semicolons or new lines (type 1200 rather than 1,200, as commas are treated as separators). Source: https://hopi.co.uk/average-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
numbersYesA list of numbers separated by spaces, commas, semicolons or new lines

Output Schema

ParametersJSON Schema
NameRequiredDescription
maxYes
minYes
sumYes
meanYes
modeYes
countYes
medianYes
summaryYes
modeValuesYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds a valuable behavioral quirk: commas are treated as separators, so users must type 1200 instead of 1,200. This goes beyond the schema and annotations, giving agents critical parsing behavior. No contradictions.

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

Conciseness5/5

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

Two sentences with no wasted words. The purpose is front-loaded, followed by input format and a practical gotcha. The source URL is extra but not distracting. The description is efficient and well-structured.

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

Completeness5/5

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

For a simple one-parameter read-only tool with an output schema and full annotations, the description covers purpose, input format, and a parsing pitfall. Nothing an agent needs to invoke it correctly is missing. The output schema handles return values, so no need to describe them.

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

Parameters4/5

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

Schema coverage is 100% and the schema describes the parameter as 'A list of numbers separated by spaces, commas, semicolons or new lines'. The description repeats this but adds a crucial caveat about thousand separators, which prevents misinterpretation. This adds meaning beyond the schema, so it exceeds the baseline of 3.

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

Purpose5/5

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

The description states a specific verb ('Work out') and a clear resource (a list of numbers) and enumerates the exact outputs: mean, median, mode, sum, count, minimum and maximum. This is unambiguous and distinguishes it from other calculators like standard_deviation_calculator.

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

Usage Guidelines3/5

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

The description clearly implies when to use the tool (when you need central tendency and summary statistics) but does not explicitly mention alternatives or exclusions. It provides input formatting guidance, which is helpful for parameter usage, but no when-not-to-use criteria. The context is clear, but no explicit routing.

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

hopi_base32_encoderBase32 encoder and decoderA
Read-onlyIdempotent
Inspect

Encode text to RFC 4648 Base32 or decode Base32 back to text. Encoding maps the UTF-8 bytes of the text into 5-bit groups using the alphabet A to Z then 2 to 7, padded to a multiple of 8 characters with equals signs. Decoding tolerates lowercase input and missing padding, and reports characters outside the alphabet as an error. Source: https://hopi.co.uk/base32-encoder/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'encode' turns text into Base32, 'decode' turns Base32 back into text (default encode)encode
textYesThe text to encode, or the Base32 string to decode

Output Schema

ParametersJSON Schema
NameRequiredDescription
outputYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

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

Even with readOnly, idempotent, and non-destructive annotations, the description adds substantial behavioral detail: UTF-8 byte handling, 5-bit grouping, the A-Z/2-7 alphabet, padding rules, lowercase tolerance, missing-padding tolerance, and error reporting for invalid characters. This goes well beyond the annotations.

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

Conciseness5/5

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

The description is compact and front-loaded: the main purpose is in the first sentence, followed by useful encoding/decoding specifics. The source URL is a minor addition and does not bloat the entry.

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

Completeness5/5

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

For a two-parameter tool with a full output schema, the description covers the algorithm, padding, supported input variants, and failure behavior. Nothing critical is missing for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, with both 'mode' and 'text' described in the schema itself. The description reinforces parameter meaning but does not add significant parameter-level semantics beyond what the schema already provides.

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

Purpose5/5

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

The description opens with a precise statement: 'Encode text to RFC 4648 Base32 or decode Base32 back to text.' It names the exact resource (Base32), the standard (RFC 4648), and both directions of operation. This clearly distinguishes it from siblings like hopi_base64.

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

Usage Guidelines4/5

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

The description makes the usage context clear: it is for converting text to Base32 or Base32 back to text, including decode tolerances and error behavior. It does not explicitly name alternatives or state when not to use this tool, but the Base32 versus Base64 distinction is evident from the resource name.

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

hopi_base64Base64 encode & decodeA
Read-onlyIdempotent
Inspect

Encode text to Base64, or decode a Base64 string back to text. UTF-8 safe, so accents and emoji survive the round trip. Returns the converted text or a clear error. Source: https://hopi.co.uk/base64/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'encode' text to Base64, or 'decode' Base64 back to text
textYesThe text to encode, or the Base64 string to decode

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
inputYes
outputYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark it read-only, idempotent, and non-destructive. The description adds valuable behavioral context: UTF-8 safety for accents and emoji, and a clear error return. These details go beyond the annotations and help an agent anticipate edge cases.

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

Conciseness5/5

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

The description is two short sentences plus a source URL. It is front-loaded with the core action and includes only essential details. No wasted words.

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

Completeness5/5

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

For a simple two-parameter tool with rich annotations and full schema coverage, the description covers all necessary behavior: what it does, UTF-8 safety, return type, and error handling. The provided schema and annotations fill any remaining gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well documented. The description adds minimal extra meaning, mostly reinforcing that 'text' is the content to convert. It does not introduce any new parameter-level insight beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's function with specific verbs: 'Encode text to Base64, or decode a Base64 string back to text.' It names the exact resource (Base64) and distinguishes from similar tools like base32_encoder. No ambiguity.

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

Usage Guidelines4/5

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

The description makes the usage context obvious: use it when you need Base64 encoding or decoding. The dual-mode nature is explicitly stated. It does not mention alternatives, but for a standard encoding tool the context is clear enough.

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

hopi_bill_splitterBill splitterA
Read-onlyIdempotent
Inspect

Split a restaurant bill between people. In 'itemised' mode, list each item with its amount and who shared it, then add an optional tip and service charge (both percentages applied to each person's own share). In 'even' mode, split one total evenly with an optional tip. Amounts in GBP. Source: https://hopi.co.uk/bill-splitter/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'itemised' splits by item and who had it; 'even' splits one total equally
itemsNoItemised mode: each item with its amount and the names who shared it. An item with no names is shared by everyone.
totalNoEven mode: the bill total before tip
peopleNoItemised mode: names of the people sharing the bill
tipPercentNoTip as a percentage (default 0)
peopleCountNoEven mode: number of people to split between
servicePercentNoItemised mode: service charge as a percentage (default 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNo
modeYes
totalNo
summaryYes
perPersonYes
grandTotalYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
tipPercentYes
peopleCountNo

TDQS

A4.5/5.0
Behavior4/5

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

Discloses non-obvious behavior: tip and service percentages are applied to each person's own share, amounts are in GBP, and service charge only appears in itemised mode. Annotations already convey read-only and idempotent behavior, so the description adds useful context beyond them.

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

Conciseness5/5

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

Three concise sentences with the core purpose front-loaded and the source URL at the end. No filler or redundancy; every sentence earns its place.

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

Completeness5/5

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

For a two-mode tool with conditional parameter requirements, the description covers both modes, optional tip/service, currency, and source. The output schema exists to describe return values, so their omission here is not a gap.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaning by clarifying that percentages apply per-person and that amounts are in GBP, which supplements the schema without repeating it.

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

Purpose5/5

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

States a specific verb ('Split'), resource ('restaurant bill'), and clearly explains the two modes ('itemised' and 'even'). It is easy to distinguish this tool from generic tip or VAT calculators based on the description alone.

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

Usage Guidelines4/5

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

Provides clear context for when to use itemised mode versus even mode, including what each mode requires. It does not explicitly name sibling alternatives or state when not to use this tool, but the internal mode guidance is strong.

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

hopi_bingo_card_generatorBingo card generatorA
Read-onlyIdempotent
Inspect

Generate one or more UK 90-ball bingo cards. Each card is a 3-row by 9-column grid holding 15 numbers, 5 per row, with each column drawing from its own decade (1 to 9, 10 to 19, and so on up to 80 to 90). Blank squares are null. Source: https://hopi.co.uk/bingo-card-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoHow many cards to generate, 1 to 100 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
cardsYes
countYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description reveals meaningful output behavior: the exact grid dimensions, the per-decade column constraints, the blank squares represented as null, and the source URL. This gives an agent precise expectations for the result format.

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

Conciseness5/5

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

The description is one front-loaded sentence covering purpose and key structural specifics, followed by a source reference. No redundant words, and every detail contributes to call correctness.

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

Completeness5/5

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

For a single-parameter generator with an output schema, the description covers all necessary context: card format, number layout, column constraints, and null representation. The existing output schema handles return-value details, so nothing critical is missing.

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

Parameters3/5

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

The schema already fully documents the 'count' parameter (1-100, default 1). The description's phrase 'one or more' merely restates the schema and adds no new semantic detail. With 100% schema coverage, the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool generates 'one or more UK 90-ball bingo cards' with a specific verb and resource. It details the card structure (3x9 grid, 15 numbers, 5 per row, decade columns), making it highly distinct from sibling generators like lottery or random number tools.

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

Usage Guidelines4/5

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

The context is explicit: it's for generating UK 90-ball bingo cards. While no alternative tools are referenced or exclusion criteria mentioned, the unique domain (bingo) makes it obvious when to use. This meets the 'clear context, no exclusions' level.

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

hopi_bitcoin_address_validatorBitcoin address validatorA
Read-onlyIdempotent
Inspect

Check whether a Bitcoin address is valid by verifying its checksum and structure. Supports legacy Base58Check (P2PKH, P2SH) and Bech32/Bech32m SegWit and Taproot addresses, on mainnet and testnet. Does not query the blockchain or check balances. Source: https://hopi.co.uk/bitcoin-address-validator/

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe Bitcoin address to validate

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeNo
validYes
networkNo
summaryYes
encodingNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=true, destructiveHint=false, idempotentHint=true), the description discloses meaningful behavioral boundaries: it verifies checksum and structure without querying the blockchain or checking balances. This gives an agent a precise model of what the tool can and cannot do, with no contradiction.

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

Conciseness5/5

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

The description is three dense sentences with the core purpose front-loaded. Every sentence adds distinct value: what the tool does, what inputs it supports, and what it explicitly avoids. The source URL is supplemental but not bloated.

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

Completeness5/5

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

Given the tool's moderate complexity, a single-parameter schema, and rich annotations plus an output schema, the description covers all necessary invocation details: purpose, accepted formats, networks, and limitations. An agent has enough context to select and call the tool correctly.

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

Parameters4/5

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

The schema already describes the single 'address' parameter at 100% coverage, establishing baseline 3. The description goes further by enumerating valid address variants (legacy Base58Check, Bech32/Bech32m, SegWit, Taproot, mainnet/testnet), which materially helps an agent construct a valid parameter value.

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

Purpose5/5

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

The description uses a specific verb ('Check whether') and resource ('a Bitcoin address is valid') and clearly distinguishes this tool from sibling validators like hopi_iban_validator and hopi_eth_address_checksum. It further narrows scope by naming supported address formats, networks, and what it does not do.

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

Usage Guidelines4/5

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

The description makes the tool's context clear: it is for Bitcoin address validation only, covering specific formats and networks. It also includes a when-not-to-use signal ('Does not query the blockchain or check balances'), though it does not explicitly name an alternative tool for balance lookups.

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

hopi_bmi_calculatorBMI calculatorA
Read-onlyIdempotent
Inspect

Work out body mass index (BMI) from height and weight, with the NHS weight category. Use units 'metric' with heightCm and weightKg, or 'imperial' with heightInches and weightPounds. BMI = weight in kg / (height in metres squared). Source: https://hopi.co.uk/bmi-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
unitsYes'metric' (cm and kg) or 'imperial' (inches and pounds)
heightCmNoHeight in centimetres (metric)
weightKgNoWeight in kilograms (metric)
heightInchesNoTotal height in inches (imperial)
weightPoundsNoWeight in pounds (imperial)

Output Schema

ParametersJSON Schema
NameRequiredDescription
bmiYes
unitsYes
summaryYes
categoryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the formula (BMI = weight in kg / (height in metres squared)) and the NHS category output, which are useful behavioral details beyond the schema. It does not mention edge cases like invalid height/weight values, but the schema's exclusiveMinimum covers basic validation.

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

Conciseness5/5

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

Three sentences with no filler. The core purpose is front-loaded, the unit instructions are compact, and the formula and source are included without bloating the description.

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

Completeness4/5

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

The description covers purpose, unit selection, formula, and output category. The output schema exists, so return values need not be explained. Minor gap: it doesn't state what happens with invalid inputs (e.g., zero or negative values), but the schema's exclusiveMinimum and the simple nature of the tool make this a small omission.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters. The description adds the unit-system mapping (metric vs imperial) and the formula, but it does not add meaning beyond what the schema's conditional requirements and parameter descriptions already provide. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Work out'), a clear resource ('body mass index (BMI) from height and weight'), and the distinctive output ('with the NHS weight category'). It also names the two unit systems, which distinguishes it from sibling calculators like hopi_body_fat_calculator or hopi_weight_converter.

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

Usage Guidelines4/5

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

The description gives explicit usage instructions: use 'metric' with heightCm and weightKg, or 'imperial' with heightInches and weightPounds. It does not explicitly state when not to use it or name alternatives, but the unit-specific guidance is clear enough for an agent to select and invoke it correctly.

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

hopi_body_fat_calculatorBody fat percentage calculatorA
Read-onlyIdempotent
Inspect

Estimate body fat percentage using the US Navy tape method from a few measurements. For males give height, neck and waist; for females give height, neck, waist and hip. Use units 'metric' (centimetres) or 'imperial' (inches). Optionally give weight (kg for metric, pounds for imperial) to also get fat mass and lean mass in kilograms. Source: https://hopi.co.uk/body-fat-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
hipNoHip circumference, females only (cm if metric, inches if imperial)
sexYesBiological sex, determines the formula and whether hip is needed
neckYesNeck circumference (cm if metric, inches if imperial)
unitsYes'metric' (cm) or 'imperial' (inches)
waistYesWaist circumference (cm if metric, inches if imperial)
heightYesHeight (cm if metric, inches if imperial)
weightNoOptional weight (kg if metric, pounds if imperial) for fat and lean mass

Output Schema

ParametersJSON Schema
NameRequiredDescription
sexYes
unitsYes
summaryYes
categoryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
bodyFatPercentYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context beyond annotations: it explains the estimation method, sex-dependent input requirements, unit handling, and the optional weight parameter that enables fat mass and lean mass calculation.

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

Conciseness5/5

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

The description is compact and front-loaded, with the core purpose in the first sentence and supporting usage details in the next two. Every sentence adds value: method, sex-specific inputs, unit options, optional weight behavior, and source attribution.

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

Completeness5/5

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

For a calculator with 7 parameters and an output schema, the description is complete: it covers the method, required versus optional inputs, sex differences, unit conventions, and what the optional parameter enables. The output schema handles return value details, so nothing essential is missing.

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

Parameters4/5

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

Schema coverage is 100% with meaningful parameter descriptions, so the baseline is 3. The description goes beyond the schema by explaining the sex-specific conditional requirement for hip, clarifying how units map to parameters, and stating the purpose of the optional weight parameter in producing additional outputs.

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

Purpose5/5

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

The description starts with a specific verb and resource: 'Estimate body fat percentage using the US Navy tape method.' It distinguishes this calculator from sibling health calculators like BMI or TDEE by naming the exact measurement method and the output it produces.

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

Usage Guidelines4/5

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

The description gives clear usage context by specifying which measurements are needed for males versus females, and which unit system to use. It does not explicitly name alternatives or when not to use this tool, but the scope is clear enough for an agent to select it appropriately.

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

hopi_caesar_cipherCaesar cipher & ROT13A
Read-onlyIdempotent
Inspect

Encode or decode text with a Caesar shift cipher. Each letter is moved along the alphabet by the shift amount; a shift of 13 is ROT13. Only A to Z letters are changed, everything else is left as is. Decoding applies the opposite shift. Source: https://hopi.co.uk/caesar-cipher/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'encode' to apply the shift, 'decode' to reverse it (default encode)encode
textYesThe text to transform
shiftYesHow many places to shift each letter (e.g. 3, or 13 for ROT13)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
shiftYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description goes beyond by specifying the transformation behavior: only A-Z letters are changed, others remain, and decoding reverses the shift. It does not explicitly address case preservation, but it does not contradict annotations. This adds meaningful behavioral context beyond the structured hints.

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

Conciseness5/5

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

The description is three sentences with no wasted words. The core purpose is front-loaded, followed by the key mechanics and a source link. It is efficiently structured and each sentence earns its place.

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

Completeness5/5

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

For a simple transformation tool with a rich input schema and an output schema (per context signals), the description covers everything an agent needs to call it correctly: what it does, how the shift works, and edge cases like non-letters. There is no missing information that would prevent correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (text, shift, mode) are documented. The description reinforces the shift meaning by noting that 13 equals ROT13, which adds a useful reference. However, it does not add new semantics beyond what the schema already conveys; the baseline of 3 is appropriate because the schema handles the heavy lifting.

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

Purpose5/5

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

The description opens with a precise verb and resource: 'Encode or decode text with a Caesar shift cipher.' It immediately clarifies the operation (encode/decode) and the specific cipher type. The mention of ROT13 as shift 13 differentiates it from sibling ciphers like hopi_vigenere_cipher, and the explanation of only A-Z letters being altered gives a concrete scope.

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

Usage Guidelines4/5

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

The description clearly states what the tool does and the mechanics (shift amount, ROT13 equivalence, non-letter handling). It does not explicitly name alternatives or conditions when not to use it, but given the self-evident name and the context of a simple utility, the intended usage is clear. No exclusions are mentioned, but the description is adequate for typical usage.

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

hopi_cagr_calculatorCAGR calculatorA
Read-onlyIdempotent
Inspect

Work out the compound annual growth rate (CAGR) that takes a starting value to an ending value over a number of years. Returns the annual rate, the total growth and the growth multiple. Source: https://hopi.co.uk/cagr-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnding value
startYesStarting value (must be greater than zero)
yearsYesNumber of years over the period (may be a fraction)

Output Schema

ParametersJSON Schema
NameRequiredDescription
endNo
startNo
yearsNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
cagrPercentNo
growthMultipleNo
shortPeriodWarningNo
totalGrowthPercentNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive, so side-effect disclosure is not needed. The description adds useful context about the three outputs and includes the authoritative source URL, though it does not mention edge-case handling such as zero ending values or numeric formatting.

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

Conciseness5/5

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

Three short sentences with no filler: the first states the core operation, the second lists outputs, and the third provides the source. The most decision-relevant information is front-loaded.

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

Completeness5/5

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

For a simple calculator tool, the description plus full schema descriptions, output schema, and safe annotations cover everything an agent needs to invoke it correctly. No critical information about inputs, outputs, or safety is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema documents all three parameters. The description reinforces the relationship between start, end, and years, but adds no new parameter-level meaning such as units, examples, or formula details beyond what the schema already provides.

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

Purpose5/5

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

The description names the specific operation ('Work out the compound annual growth rate') and the resource relationship ('starting value to an ending value over a number of years'), and enumerates the returned values (annual rate, total growth, growth multiple). This makes it readily distinguishable from related calculators like compound_interest_calculator or percentage_change_calculator.

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

Usage Guidelines3/5

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

The usage context is implied by the CAGR definition, but there is no explicit when-to-use/when-not-to-use guidance or reference to sibling alternatives. An agent must infer that this is the right tool for CAGR rather than the closely related compound interest or inflation calculators.

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

hopi_calories_to_kjCalories to kJ converterA
Read-onlyIdempotent
Inspect

Convert food energy between kilocalories (kcal) and kilojoules (kJ) using the exact factor 1 kcal = 4.184 kJ. Give an amount and its unit ('kcal' or 'kj'); returns both values. Source: https://hopi.co.uk/calories-to-kj/

ParametersJSON Schema
NameRequiredDescriptionDefault
unitYesThe unit of the amount: 'kcal' (kilocalories) or 'kj' (kilojoules)
amountYesThe energy amount to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
kjYes
kcalYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark it read-only and idempotent; the description adds the exact conversion factor and that both values are returned, which is meaningful behavioral detail beyond schema and annotations. No contradiction is present.

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

Conciseness5/5

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

Three short sentences, with the operation and factor first and the ancillary source URL last. No redundant phrasing or unnecessary detail.

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

Completeness5/5

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

With a complete input schema, an output schema, and annotations covering read-only and idempotence, the description covers the remaining needed context: what to pass, the factor, and that both values come back. Nothing important is missing for a simple converter.

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

Parameters3/5

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

Both parameters are fully described in the schema, including the enum for the unit, so the description's restatement of 'amount and unit' adds little. It reinforces the flow but does not meaningfully enrich parameter semantics beyond the schema.

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

Purpose5/5

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

States a specific conversion operation (kcal ↔ kJ) with the exact factor, immediately differentiating it from the many other converter siblings. The resource and direction are unambiguous.

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

Usage Guidelines4/5

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

The description tells the agent to supply an amount and a unit, and frames the tool as the food-energy converter, which makes the intended context clear. It doesn't explicitly discuss alternatives or exclusion cases, but none are material for such a unique unit pairing.

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

hopi_case_converterCase converterA
Read-onlyIdempotent
Inspect

Convert text to a different letter case. 'upper' is UPPERCASE, 'lower' is lowercase, 'title' capitalises the first letter of each word, and 'sentence' capitalises the first letter of each sentence. Source: https://hopi.co.uk/case-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesThe target case
textYesThe text to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the source URL and explains the case conversion semantics, but doesn't disclose details like how 'title' handles edge cases (e.g., articles, hyphenated words) or how 'sentence' detects sentence boundaries. For a pure text transformation, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single compact sentence that front-loads the core purpose, then defines all four modes in a scannable list, and ends with a source attribution. Every element earns its place with no wasted words.

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

Completeness4/5

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

For a simple two-parameter text transformation with an output schema, the description covers the essential semantics. The mode definitions are the only real ambiguity, and they are fully explained. The source URL is a minor bonus. It doesn't discuss edge cases, but for this tool's simplicity, the description is complete enough for an agent to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters ('text' and 'mode') are already documented in the schema. The description adds value by explaining what each enum value does, which goes slightly beyond the schema's terse 'The target case' description. However, the schema already carries the parameter definitions, so the description's contribution is marginal.

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

Purpose5/5

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

The description clearly states the tool converts text to a different letter case, and explicitly defines each of the four modes ('upper', 'lower', 'title', 'sentence') with examples. This is a specific verb+resource that distinguishes it from the many other text-manipulation siblings like hopi_reverse_text or hopi_remove_extra_spaces.

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

Usage Guidelines4/5

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

The description explains what each mode does, which effectively tells the agent when to use this tool and which mode to select. It doesn't explicitly name alternatives or exclusions, but the mode definitions provide clear context for choosing this tool over other text utilities. The sibling list contains many text tools, but the description's mode breakdown is sufficient guidance for this simple utility.

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

hopi_cat_age_calculatorCat age calculatorA
Read-onlyIdempotent
Inspect

Convert a cat's age in years to an approximate human age, using the standard 15, 24, then 4 a year chart. Returns the human-equivalent age and the cat's life stage. Source: https://hopi.co.uk/cat-age-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
catAgeYesThe cat's age in years (0 to 40)

Output Schema

ParametersJSON Schema
NameRequiredDescription
stageNo
catAgeNo
summaryYes
humanYearsNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the specific conversion formula and the fact that it returns both the human-equivalent age and life stage, which is useful behavioral context beyond the annotations. It doesn't mention edge cases like age 0 or 40, but the schema already constrains those.

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

Conciseness5/5

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

Two sentences with no filler. The core action and formula are front-loaded, and the source URL is appended without disrupting the main content. Every sentence earns its place.

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

Completeness4/5

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

The description is complete for a simple, single-parameter, read-only calculator. It explains the conversion method and return values. The output schema exists, so return values are further documented. The only minor gap is not explicitly stating the life stage categories, but that's not necessary for calling the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the catAge parameter (type, range, description). The description adds the conversion chart context but doesn't add new parameter-level semantics beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool converts a cat's age in years to an approximate human age, specifies the exact conversion chart (15, 24, then 4 a year), and mentions the return values (human-equivalent age and life stage). This distinguishes it from the sibling hopi_dog_age_calculator and hopi_age_calculator.

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

Usage Guidelines4/5

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

The description implies when to use it: when you need to convert a cat's age to human years. It doesn't explicitly state when not to use it or name alternatives like hopi_dog_age_calculator, but the specificity of 'cat' and the conversion chart makes the usage context clear. A small gap is not mentioning that this is for cats only, not dogs or other pets.

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

hopi_celsius_to_fahrenheitTemperature converterA
Read-onlyIdempotent
Inspect

Convert a temperature between Celsius and Fahrenheit. Also returns Kelvin. Set direction to 'c-to-f' or 'f-to-c'. Source: https://hopi.co.uk/celsius-to-fahrenheit/

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe temperature value to convert
directionYes'c-to-f' converts Celsius to Fahrenheit, 'f-to-c' converts Fahrenheit to Celsius

Output Schema

ParametersJSON Schema
NameRequiredDescription
kelvinYes
celsiusYes
summaryYes
directionYes
fahrenheitYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint, so the description's job is light. It adds useful behavioral context beyond the annotations by noting that Kelvin is also returned and by clarifying the direction values. There is no contradiction with the annotations.

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

Conciseness5/5

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

The description is compact and front-loaded: the main action is stated first, followed by the Kelvin behavior, the direction instruction, and a source link. Every sentence contributes useful information and there is no redundancy.

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

Completeness5/5

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

For a simple read-only conversion tool, the annotations cover the safety profile, the schema fully documents both required parameters, and an output schema exists. The description adds the only missing detail—Kelvin is returned—so an agent has everything needed to call the tool correctly.

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

Parameters3/5

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

The schema has 100% parameter description coverage, including enum values with a full explanation. The description merely restates the direction values ('c-to-f' or 'f-to-c') without adding new meaning about the value's range, format, or units, so it stays at the high-coverage baseline.

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

Purpose5/5

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

The description states a specific action—'Convert a temperature between Celsius and Fahrenheit'—and adds the extra Kelvin return, which clearly distinguishes it from generic temperature converters like hopi_oven_temperature_converter. It is not a tautology and fully explains the tool's primary function.

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

Usage Guidelines3/5

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

The description offers the 'how' by telling the agent to set direction to 'c-to-f' or 'f-to-c', but it does not specify when to prefer this tool over sibling converters or when not to use it. Usage context is only implied by the explicit units, not stated as a decision rule.

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

hopi_character_counterCharacter counterA
Read-onlyIdempotent
Inspect

Count the characters in a block of text, including a count with spaces removed, the word count, how many SMS messages it would take to send, and the Twitter/X characters remaining out of 280. Source: https://hopi.co.uk/character-counter/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to measure

Output Schema

ParametersJSON Schema
NameRequiredDescription
wordsNo
summaryYes
smsPartsNo
charactersNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
tweetRemainingNo
charactersNoSpacesNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations cover read-only, idempotent, non-destructive behavior, so the description only needs to add algorithmic detail. It adds meaningful behavior by listing exactly which counts are computed (with/without spaces, words, SMS, Twitter remaining), reducing ambiguity about what 'count characters' means.

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

Conciseness5/5

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

One information-dense sentence presents the action and all output variants, followed by a short source attribution. No filler or repeated schema information.

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

Completeness5/5

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

With a single string input, a full output schema, and annotations covering side effects, the description gives the agent everything needed to invoke and interpret results. Listing the concrete output categories is sufficient for this pure calculation tool.

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

Parameters3/5

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

The schema already describes the only parameter ('The text to measure') at 100% coverage, so the description does not need to compensate. It only restates the same concept as 'a block of text' and adds no format, encoding, or length constraints beyond the schema.

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

Purpose5/5

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

The description starts with the concrete verb 'Count the characters in a block of text' and then names every output metric: spaces-removed count, word count, SMS segment count, and Twitter/X character remaining. This makes the tool easy to distinguish from sibling text tools like word_counter or text_splitter.

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

Usage Guidelines4/5

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

The use case is clear from the description: any time an agent needs character-level measurements of a text block. It does not explicitly say when to prefer the sibling word_counter or text_splitter, but the scope and metrics imply the appropriate context without ambiguity.

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

hopi_cipher_identifierCipher identifier and auto-decoderA
Read-onlyIdempotent
Inspect

Identify what encoding or classical cipher a piece of text probably is (Base64, Base32, hex, binary, octal or decimal ASCII, URL encoding, HTML entities, Morse, Caesar or ROT-N, Atbash, reversed text) or recognise it as a UUID, IPv4 address, Unix timestamp, JWT or hash digest. Returns ranked candidates with confidence and a decoded preview, then auto-decodes nested layers (up to 8) while a step is at least 60% confident. Cannot break keyed encryption such as AES. Source: https://hopi.co.uk/cipher-identifier/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe unknown text to identify and decode

Output Schema

ParametersJSON Schema
NameRequiredDescription
chainYes
summaryYes
plaintextYes
candidatesYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses concrete behavior: it 'Returns ranked candidates with confidence and a decoded preview', auto-decodes up to 8 nested layers with a 60% confidence threshold, and explicitly states its limitation with keyed encryption. This gives an agent a clear model of what will happen when the tool is invoked.

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

Conciseness5/5

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

The description is three dense sentences: core purpose, behavioral details, and a clear limitation plus source. Every sentence adds information, and the most important action verb ('Identify') is front-loaded. There is no filler or duplication of schema content.

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

Completeness5/5

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

For a single-parameter tool with a rich output schema, the description covers the input type, supported format families, the ranked/confidence/preview return behavior, the auto-decode loop and its stopping condition, and the keyed-encryption limitation. The source URL adds provenance. Nothing essential is missing for an agent to decide whether and how to call this tool.

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

Parameters3/5

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

The input schema already describes the single parameter as 'The unknown text to identify and decode', and the description's reference to 'a piece of text' essentially restates that. With 100% schema description coverage, the baseline of 3 is appropriate; the description adds no further semantic detail such as length limits, character set, or example formats.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Identify what encoding or classical cipher a piece of text probably is' and enumerates concrete formats (Base64, Base32, hex, Morse, Caesar/ROT-N, etc.). It also says it 'auto-decodes nested layers', which clearly ties the name to an actionable, distinct function. This differentiates it from sibling tools by focusing on identification and automatic decoding rather than single-format conversion.

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

Usage Guidelines4/5

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

The description makes the primary use case explicit: provide unknown text and get an identification and decode. It also gives a clear when-not: 'Cannot break keyed encryption such as AES'. However, it does not name alternative tools for when the encoding is already known, relying instead on the sibling list, so it stops short of full routing guidance.

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

hopi_cm_to_feetCm to feet converterA
Read-onlyIdempotent
Inspect

Convert a height between centimetres and feet/inches. Direction 'cm-to-feet' takes cm and returns feet and inches. Direction 'feet-to-cm' takes feet and inches and returns cm. Source: https://hopi.co.uk/cm-to-feet/

ParametersJSON Schema
NameRequiredDescriptionDefault
cmNoCentimetres (for cm-to-feet)
feetNoFeet (for feet-to-cm)
inchesNoInches (for feet-to-cm, optional)
directionYesWhich way to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
cmYes
feetYes
inchesYes
summaryYes
directionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
feetDecimalNo
totalInchesNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no behavioral details beyond these—no side effects, auth needs, or rate limits are applicable for a pure conversion. With the annotation bar lowered, the description performs adequately but adds no extra transparency credit.

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

Conciseness4/5

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

Three sentences convey the full purpose and direction-specific behavior without fluff. The source URL is an extra clause but not intrusive. Information is front-loaded with the core action first, then the direction details. Very compact and effective, though the source link could be omitted without loss.

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

Completeness4/5

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

For a simple read-only converter with a full output schema and complete parameter descriptions, the description covers the essential usage: both conversion directions and which inputs are required. It does not mention rounding or precision, but the output schema likely handles that. Overall, it is sufficiently complete for an agent to call this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description reiterates the direction-parameter mapping already present in the schema (e.g., 'cm' description says 'for cm-to-feet'), but adds no new semantic nuance like formatting, precision, or edge-case handling. It correctly reflects the conditional requirement but does not elevate above the schema baseline.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Convert a height between centimetres and feet/inches.' It explicitly names both directions and what each returns, which clearly distinguishes this from generic length converters like hopi_length_converter and other unit-specific siblings such as hopi_kg_to_stone or hopi_miles_to_km. The purpose is unambiguous and fully stated.

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

Usage Guidelines4/5

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

The description explains which parameters to use for each direction ('Direction cm-to-feet takes cm... Direction feet-to-cm takes feet and inches...'), giving clear when-to-use context within the tool. It does not explicitly mention alternatives like 'use hopi_length_converter for other units,' but the specialized name and sibling set make that exclusion implicit. There is clear context, just no explicit exclusionary guidance.

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

hopi_cmyk_to_rgbCMYK to RGB converterA
Read-onlyIdempotent
Inspect

Convert print CMYK values (each 0 to 100) to on-screen RGB and hex, or convert RGB (each 0 to 255) the other way to CMYK. Uses the standard device-independent conversion. Source: https://hopi.co.uk/cmyk-to-rgb/

ParametersJSON Schema
NameRequiredDescriptionDefault
bNoBlue 0 to 255 (for rgb_to_cmyk)
cNoCyan 0 to 100 (for cmyk_to_rgb)
gNoGreen 0 to 255 (for rgb_to_cmyk)
kNoKey/black 0 to 100 (for cmyk_to_rgb)
mNoMagenta 0 to 100 (for cmyk_to_rgb)
rNoRed 0 to 255 (for rgb_to_cmyk)
yNoYellow 0 to 100 (for cmyk_to_rgb)
modeYesDirection of conversion

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexNo
rgbNo
modeYes
summaryYes
rgbStringNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by noting it 'Uses the standard device-independent conversion' and provides a source URL, which clarifies the conversion semantics beyond the schema.

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

Conciseness5/5

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

The description is two tight sentences. The first front-loads the core conversion behavior and ranges, and the second adds the conversion standard and source link. There is no filler, tautology, or unnecessary repetition of the title or schema.

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

Completeness5/5

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

Given this is a deterministic conversion tool with full parameter schema coverage and an output schema, the description is complete enough for correct invocation. It identifies the mode-dependent directions, the value ranges, and the conversion standard, so an agent has everything needed beyond the structured schema.

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

Parameters3/5

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

Schema description coverage is 100%, with every parameter already documented with ranges and mode-conditional usage. The description reinforces the 0–100 CMYK and 0–255 RGB ranges, but it does not add per-parameter meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb and resource: 'Convert print CMYK values ... to on-screen RGB and hex, or convert RGB ... the other way to CMYK.' It explicitly names both directions, the color spaces involved, and gives ranges, making it unambiguous against sibling color converters like hopi_hex_to_rgb or hopi_rgb_to_hex.

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

Usage Guidelines4/5

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

It provides clear context for when to use the tool: converting between print CMYK values and on-screen RGB/hex. It does not explicitly name sibling alternatives or state exclusions, but the bidirectional scope is specific enough to guide selection without inference.

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

hopi_coin_flipCoin flipA
Read-onlyIdempotent
Inspect

Flip a fair coin one or more times. Returns each result plus a tally of heads and tails. Source: https://hopi.co.uk/coin-flip/

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoHow many coins to flip, 1 to 10000 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
headsYes
tailsYes
resultsYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so no contradiction exists. The description adds a useful fairness guarantee ('fair coin') and summarizes output shape, but with an output schema available, this is context rather than essential disclosure.

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

Conciseness5/5

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

Two short sentences front-load the action and result, with no redundant wording. The source URL is a minor but harmless addition, and every sentence earns its place.

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

Completeness5/5

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

The tool is simple, has one optional parameter, an existing output schema, and annotations covering safety. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and the count parameter is fully documented in the input schema. The description's 'one or more times' adds no meaning beyond the schema's min/default/max, so it rests at the baseline.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Flip a fair coin one or more times.' It clearly distinguishes this from random utilities like dice_roller or random_number_generator by naming the coin-flip mechanic and adding that results are tallied.

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

Usage Guidelines2/5

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

The description implies the obvious use case but gives no guidance about when to prefer this over sibling alternatives such as dice_roller, random_number_generator, or yes_no_wheel. There are no when-to-use, when-not-to-use, or exclusion statements.

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

hopi_colour_name_finderColour name finderA
Read-onlyIdempotent
Inspect

Find the named CSS colour that exactly or most closely matches a hex code, using straight-line distance in RGB space across the 148 named CSS colours. Source: https://hopi.co.uk/colour-name-finder/

ParametersJSON Schema
NameRequiredDescriptionDefault
hexYesHex colour code, e.g. #DC143C or #F00

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
exactNo
inputNo
namesNo
summaryYes
distanceNo
nearestHexNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive), so the bar for additional credit is lower. The description adds genuine behavior beyond annotations: the matching is done with straight-line RGB distance (disclosing a non-perceptual approximation), results may be exact OR approximate ('exactly or most closely'), and the colour set size is pinned at 148. The source URL also adds verifiability. No contradiction with annotations.

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

Conciseness5/5

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

One tightly written sentence that front-loads the verb, resource, and distinguishing algorithm, then appends a useful source reference. Every element earns its place with zero filler or redundancy.

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

Completeness5/5

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

For a single-parameter, read-only look-up tool with full schema coverage, a strong output schema, and complete annotations, the description is fully adequate. It explains the algorithm, the matching tolerance, and the colour universe (148 named CSS colours). Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The schema already documents the hex format via pattern and example (#DC143C or #F00). The description contributes marginal meaning by implying that arbitrary hex values work and will be matched to the closest named colour, but it does not add formatting or syntax detail beyond the schema.

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

Purpose5/5

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

The description names a specific verb and resource ('Find the named CSS colour'), specifies the input (hex code), and the matching method ('straight-line distance in RGB space across the 148 named CSS colours'). This clearly distinguishes it from colour-related siblings such as hopi_hex_to_rgb, hopi_colour_palette_generator, and hopi_colour_picker without needing to inspect their schemas.

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

Usage Guidelines3/5

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

The use case is implied: given a hex code, get its matching named CSS colour. However, the description never names alternatives or states when NOT to use this tool (e.g., versus hopi_hex_to_rgb for RGB conversion or hopi_colour_picker for interactive picking). With many colour-related siblings, explicit routing guidance is absent, leaving selection to inference.

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

hopi_colour_palette_generatorColour palette generatorA
Read-onlyIdempotent
Inspect

Generate a five-swatch colour palette from a base hex colour using a chosen scheme: analogous, complementary, triadic or mixed. Supporting swatches carry a small random variation, so results vary slightly each call. Source: https://hopi.co.uk/colour-palette-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
hexYesBase colour as a six-digit hex code, e.g. #1F8A70
schemeNoColour scheme (default analogous)analogous

Output Schema

ParametersJSON Schema
NameRequiredDescription
baseNo
schemeNo
paletteNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.7/5.0
Behavior1/5

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

The description usefully discloses non-determinism ('supporting swatches carry a small random variation, so results vary slightly each call') and cites a source. However, this directly contradicts the idempotentHint=true annotation: repeated identical calls are not guaranteed to produce identical results. Per rubric, a contradiction with annotations scores 1.

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

Conciseness5/5

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

Three short sentences with no wasted words. The core action and output are front-loaded, followed by the randomness caveat and source attribution. Every sentence earns its place.

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

Completeness5/5

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

The tool is simple, schema coverage is complete, and an output schema exists. The description supplies output size, available schemes, and variability behaviour, so nothing necessary for a correct call is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters already have clear descriptions including the enum for scheme. The description adds no format or default details beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

States a specific verb ('Generate'), specifies the exact output ('five-swatch colour palette'), the input ('base hex colour'), and enumerates the four schemes. This clearly differentiates it from sibling tools like hopi_colour_shades_generator and hopi_random_colour_generator.

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

Usage Guidelines4/5

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

The description clearly conveys when to use it: whenever a palette is needed from a hex colour using one of the four named schemes. It does not explicitly list alternative tools or exclusions, but the context is clear enough for an agent to select it correctly.

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

hopi_colour_pickerColour pickerA
Read-onlyIdempotent
Inspect

Given a six-digit hex colour code (with or without a leading #), return its hex, RGB and HSL values. Source: https://hopi.co.uk/colour-picker/

ParametersJSON Schema
NameRequiredDescriptionDefault
hexYesSix-digit hex colour code, e.g. #1F8A70

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexNo
hslNo
rgbNo
summaryYes
hslStringNo
rgbStringNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.9/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true and idempotentHint=true, so the agent already knows this is a safe, non-destructive operation. The description adds value by specifying the exact input format (with or without '#' and case-insensitive) and that the output includes all three formats, which is genuinely useful. It doesn't contradict annotations.

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

Conciseness5/5

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

The description is a single, efficient sentence that states the tool's purpose in the opening clause and includes a useful source link. It is front-loaded with the core functionality and wastes no words.

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

Completeness4/5

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

Given there is an output schema and the annotations cover read-only and idempotent behavior, the description is mostly complete. It could mention edge cases like invalid hex formats, but the schema's pattern already validates this. Overall, an agent has enough to call this tool correctly.

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

Parameters4/5

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

The schema already fully documents the single 'hex' parameter with a pattern and example. The description reinforces the format acceptance (with or without '#') and clarifies the conversion intent, which adds a little beyond the schema but is not essential given the 100% coverage. Baseline is 3, improved to 4 for the input format clarification.

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

Purpose4/5

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

The description clearly states that the tool converts a six-digit hex colour code to hex, RGB, and HSL values. It distinguishes itself from sibling tools like hopi_hex_to_rgb and hopi_rgb_to_hex by covering all three representations, but does not explicitly name these alternatives, so it doesn't fully differentiate across the colour conversion cluster.

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

Usage Guidelines3/5

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

The description implies the tool is for converting hex to multiple colour formats, which is clear enough for typical use. However, it offers no explicit guidance on when to choose this over more specific converters like hopi_hex_to_rgb or hopi_hsl_converter, nor does it mention exclusions or prerequisites beyond the hex input format.

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

hopi_colour_shades_generatorShades & tints generatorA
Read-onlyIdempotent
Inspect

From a base hex colour, generate five progressively lighter tints (mixed towards white) and five progressively darker shades (mixed towards black), each in five equal steps of one sixth. Source: https://hopi.co.uk/colour-shades-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
hexYesBase colour as a six-digit hex code, e.g. #1F8A70

Output Schema

ParametersJSON Schema
NameRequiredDescription
baseNo
tintsNo
shadesNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds meaningful behavioral detail: it explicitly states the number of tints/shades (five each) and the step size (one sixth), and that tints are mixed towards white and shades towards black. This goes beyond the annotations and gives the agent a clear expectation of the operation. It does not mention return format, but the presence of an output schema covers that.

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

Conciseness5/5

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

The description is two concise sentences that front-load the core action and output specification. Every sentence earns its place: the first states the operation and algorithm, the second credits the source. There is no redundant wording or filler. The structure is clear and easily scannable.

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

Completeness4/5

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

For a simple single-parameter tool with an output schema, the description provides sufficient detail: it specifies the number of outputs, the mixing direction, and step increments. It does not mention potential error handling or invalid input, but the schema pattern already enforces validity. The tool is fully understandable for an agent to invoke correctly, though it lacks usage context (which is scored separately).

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

Parameters3/5

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

The input schema provides a full description for the single parameter 'hex' (six-digit hex code with example), achieving 100% schema coverage. The description adds minimal new meaning, merely restating 'base hex colour'. No extra formatting, range, or edge-case information is given. Per the rubric, with high schema coverage the baseline is 3, and the description does not elevate it further.

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

Purpose5/5

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

The description states exactly what the tool does: from a base hex colour it generates five lighter tints and five darker shades, specifying the mixing towards white/black and the step count. This is a specific verb and resource, clearly distinguishing it from sibling colour tools like palette generators or random colour generators. The action and output are unambiguous.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention sibling tools such as hopi_colour_palette_generator or hopi_hex_to_rgb, nor any exclusion criteria. An agent must infer usage from the tool name alone. The description is purely functional with no contextual or routing information.

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

hopi_combination_generatorCombination generatorA
Read-onlyIdempotent
Inspect

List every way to choose r items from a list, ignoring order (combinations). Returns the total count and the combinations themselves (the first 5000). Source: https://hopi.co.uk/combination-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesThe list of items to choose from
chooseYesHow many items to pick in each combination (r)

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
summaryYes
truncatedNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
combinationsNo

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the readOnly/idempotent/destructive annotations, the description discloses two behavioral facts: the return payload (total count plus the combinations) and the hard 5000-result truncation. The truncation is important operational context an agent would otherwise only discover at runtime.

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

Conciseness4/5

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

Three tight sentences with the purpose front-loaded and the truncation note placed second. The source URL is minor extra provenance, but it is a single short clause that does not bloat the description.

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

Completeness4/5

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

For a two-parameter tool with full schema coverage, an output schema, and safety annotations, this description covers the essentials. The only unstated edge cases are behaviors like choose exceeding the item count, which the schema bounds and mathematical definition make largely predictable.

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

Parameters3/5

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

Schema description coverage is 100%, with both items and choose already documented in the schema itself. The description adds only a modest explicit link between 'r' and the choose parameter and 'list' and items, but it does not carry the parameter-documentation burden.

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

Purpose5/5

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

The description names a specific verb ('List') and resource ('every way to choose r items from a list'), and clarifies the combinatorics semantics with 'ignoring order (combinations)'. This clearly distinguishes it from the many sibling generator tools and other list-processing tools.

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

Usage Guidelines4/5

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

The use case is clear from the first sentence: use this whenever you need to enumerate all order-insensitive selections of r items. It does not name alternatives or state when not to use it, though no sibling tool competes for the same task (e.g., random_team_generator selects a random subset, not all combinations).

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

hopi_compound_interest_calculatorCompound interest calculatorA
Read-onlyIdempotent
Inspect

Project savings growth from a starting deposit plus a regular monthly contribution, compounded monthly with contributions added at the end of each month. Returns the final balance, total paid in and interest earned. Amounts in GBP, rate is the annual rate as a percentage. Source: https://hopi.co.uk/compound-interest-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYesAnnual interest rate as a percentage
yearsYesTerm in years (1 to 100)
monthlyNoMonthly contribution in GBP (default 0)
principalNoStarting deposit in GBP (default 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
rateYes
yearsYes
monthsYes
monthlyYes
summaryYes
principalYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
totalPaidInYes
finalBalanceYes
interestEarnedYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable behavioral detail beyond annotations: compounding frequency (monthly) and contribution timing (end of month), plus return values and currency. No contradictions.

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

Conciseness5/5

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

Three sentences with no wasted words. Purpose is front-loaded, return values are stated, units and rate basis are given, and a source link is included. Exceptionally concise and well-structured.

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

Completeness4/5

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

For a calculator with an output schema (not shown but indicated), the description adequately covers inputs, calculation method, and outputs. It lacks details on edge cases or default behavior nuances, but the combination of annotations, schema, and output schema leave little uncovered. The description is complete for an agent to call correctly.

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

Parameters4/5

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

With 100% schema coverage, the schema already documents all parameters. The description adds meaning beyond the schema by clarifying the compounding frequency (monthly) and that contributions are added at month-end, which is not in the schema. It also reinforces that amounts are in GBP and rate is annual percentage.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('Project savings growth') and resource ('starting deposit plus a regular monthly contribution'), and details the compounding method. It also lists what it returns (final balance, total paid in, interest earned), making it distinct from sibling savings tools like hopi_savings_goal_calculator.

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

Usage Guidelines4/5

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

It conveys clear usage context: projecting savings with monthly contributions compounded monthly. However, it does not explicitly mention when to use this over alternatives or any exclusions, though the unique combination of features implicitly differentiates it from other financial calculators.

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

hopi_contrast_checkerContrast checkerA
Read-onlyIdempotent
Inspect

Work out the WCAG contrast ratio between a foreground (text) colour and a background colour, both as hex codes, and report whether it passes AA and AAA for normal and large text. Source: https://hopi.co.uk/contrast-checker/

ParametersJSON Schema
NameRequiredDescriptionDefault
backgroundYesBackground colour as a six-digit hex code, e.g. #FFFFFF
foregroundYesText colour as a six-digit hex code, e.g. #767676

Output Schema

ParametersJSON Schema
NameRequiredDescription
ratioNo
aaLargeNo
summaryYes
verdictNo
aaNormalNo
aaaLargeNo
aaaNormalNo
backgroundNo
foregroundNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
ratioStringNo

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context beyond these by specifying the output details (AA/AAA for normal and large text) and citing an external source URL, implying a network-backed calculation. No contradiction with annotations.

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

Conciseness5/5

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

Two tight sentences: the first front-loads the action, inputs, and output criteria; the second is a brief source citation. No redundant phrasing or filler.

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

Completeness5/5

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

For a simple two-parameter calculator, the description is complete: it defines the computation, the input format, the pass/fail reporting (AA/AAA, normal/large text), and even links a reference. The output schema is also available, so the agent has all necessary information to select and invoke the tool correctly.

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

Parameters3/5

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

The schema covers both parameters fully with descriptions ('Background colour as a six-digit hex code', 'Text colour as a six-digit hex code'). The description merely restates that inputs are hex codes, adding no new semantic detail beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description names a specific action ('Work out the WCAG contrast ratio') with a clear resource (foreground text vs background colour, both hex codes) and states the output (pass/fail for AA and AAA for normal and large text). This is distinct from sibling colour tools like hopi_hex_to_rgb or hopi_colour_name_finder, which address different tasks.

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

Usage Guidelines4/5

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

The description gives clear usage context: it's for WCAG contrast checking with specific input types. However, it does not explicitly name alternatives or state when NOT to use it, though the accessibility focus implicitly separates it from conversion/generation siblings.

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

hopi_cron_expression_parserCron expression translatorA
Read-onlyIdempotent
Inspect

Translate a standard five-field cron expression (minute, hour, day-of-month, month, day-of-week) into plain English. Understands stars, steps, ranges, lists and month and day names, plus shortcuts like @daily and @hourly. Source: https://hopi.co.uk/cron-expression-parser/

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesA five-field cron expression, for example '*/5 9-17 * * MON-FRI', or a shortcut like @daily

Output Schema

ParametersJSON Schema
NameRequiredDescription
hourYes
monthYes
minuteYes
englishYes
summaryYes
dayOfWeekYes
dayOfMonthYes
expressionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds useful behavioral context by specifying accepted input forms: stars, steps, ranges, lists, month/day names, and shortcuts such as @daily and @hourly. Error handling and edge-case behavior are not mentioned, but the output schema and safety annotations lower the burden.

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

Conciseness4/5

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

The description is compact and front-loaded with the core purpose in the first sentence. The second sentence adds useful supported-syntax detail, and the source URL is a minor extra that is not fully necessary but does not create significant noise.

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

Completeness5/5

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

For a one-parameter, read-only tool with a full output schema and strong annotations, the description is complete enough. It states the exact input format, the supported cron features, the shortcut extensions, and the transformation being performed, so an agent has sufficient information to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single 'expression' parameter and provides an example. The description adds some breadth about accepted cron syntax, but most of that is either implied by or consistent with the schema, so it does not substantially exceed the schema baseline.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Translate a standard five-field cron expression ... into plain English.' It also names the supported syntax features and shortcuts, making it easy for an agent to distinguish this tool from the many unrelated hopi utilities.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool: whenever a cron expression needs to be converted into readable English. It does not explicitly mention alternatives or exclusions, but no sibling tool appears to offer the same function, so the lack of explicit routing is a minor gap.

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

hopi_crypto_profit_calculatorCrypto profit calculatorA
Read-onlyIdempotent
Inspect

Work out profit or loss on a crypto trade from buy price, quantity and an optional per-side fee percentage. Returns breakeven price always, and profit, return percentage and total fees once a sell price is given. All figures are treated as GBP. Source: https://hopi.co.uk/crypto-profit-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
buyYesBuy price per unit
feeNoFee percentage charged on each side (default 0, must be 0 to under 100)
sellNoSell price per unit (optional; omit to see breakeven only)
quantityYesQuantity of coin traded

Output Schema

ParametersJSON Schema
NameRequiredDescription
profitNo
summaryYes
breakevenYes
totalFeesNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
profitStringNo
returnPercentNo
breakevenStringYes
totalFeesStringNo
returnPercentStringNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark this read-only, idempotent, and non-destructive. The description adds valuable behavioral detail beyond annotations: breakeven is always returned, profit/return percentage/total fees appear only when a sell price is provided, and all figures are in GBP. This gives the agent a clear model of output behavior without contradicting the annotations.

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

Conciseness5/5

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

The description is three tight sentences with no filler. It front-loads the core action, then explains conditional outputs and currency, and ends with a source reference. Every sentence contributes useful information.

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

Completeness5/5

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

For a calculator tool with two required and two optional parameters, the description covers inputs, the optional-dependent output behavior, currency, and source. An output schema exists to describe return values in more detail, so nothing essential is missing.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are already documented. The description adds useful extra semantics: the fee is 'per-side,' sell price is optional and controls which outputs appear, and currency is GBP. These nuances go beyond the schema's basic field descriptions.

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

Purpose5/5

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

The description clearly states the specific operation—'work out profit or loss on a crypto trade'—and identifies the exact inputs: buy price, quantity, and optional per-side fee. This distinguishes it from the many other calculator-type sibling tools by focusing on trade P&L rather than position sizing, staking, or DCA.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: whenever a crypto trade profit/loss needs calculating, with optional sell price for full results and omission for breakeven only. It does not explicitly name alternatives or state when not to use it, but the purpose is specific enough that an agent can route correctly among the large sibling set.

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

hopi_css_gradient_generatorCSS gradient generatorA
Read-onlyIdempotent
Inspect

Build a ready-to-use CSS gradient from two colours. Choose a linear gradient with an angle in degrees, or a radial gradient. Returns the gradient value and a full background declaration. Source: https://hopi.co.uk/css-gradient-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoGradient type (default linear)linear
angleNoAngle in degrees for a linear gradient (default 90)
colour1YesFirst colour, e.g. #FF512F
colour2YesSecond colour, e.g. #DD2476

Output Schema

ParametersJSON Schema
NameRequiredDescription
cssYes
typeYes
angleYes
summaryYes
gradientYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

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

With annotations already declaring readOnly, idempotent, and non-destructive behaviour, the description adds that the tool returns 'the gradient value and a full background declaration,' which is useful beyond the structured metadata. It does not discuss edge cases, but the annotations cover the safety profile.

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

Conciseness5/5

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

At about 40 words, the description is front-loaded with the result, states options in the second sentence, and gives output/source context in the third. Every sentence contributes.

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

Completeness5/5

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

For a simple generator with a fully documented schema, an output schema, and clear annotations, the description plus structured metadata covers what the tool does, its inputs, its output, and its safe read-only nature. No essential selection or invocation detail is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameter schemas already carry the meaning; the description adds only a slight reinforcement ('two colours', 'angle in degrees', linear/radial). This meets the high-coverage baseline but does not meaningfully augment parameter details.

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

Purpose5/5

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

The description states a specific action ('Build a ready-to-use CSS gradient from two colours') and names the two supported forms ('linear gradient with an angle in degrees, or a radial gradient'), which is enough to distinguish it from the many colour-related sibling tools.

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

Usage Guidelines4/5

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

It gives clear context: use when you need a ready-to-use CSS gradient from two colours, with explicit choice between linear and radial. It does not explicitly name alternatives or state when not to use it, so it stops one short of a full routing explanation.

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

hopi_css_minifierCSS minifierA
Read-onlyIdempotent
Inspect

Minify CSS by removing comments and needless whitespace, while preserving quoted strings and the spaces inside calc() expressions. Returns the minified CSS with before and after byte sizes. Source: https://hopi.co.uk/css-minifier/

ParametersJSON Schema
NameRequiredDescriptionDefault
cssYesThe CSS source to minify

Output Schema

ParametersJSON Schema
NameRequiredDescription
cssNo
summaryYes
afterBytesNo
savedBytesNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
beforeBytesNo
savedPercentNo

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, non-destructive), the description discloses exactly what gets modified (comments, whitespace), what is preserved (quoted strings, calc() spaces), and what the response includes (minified CSS plus before/after byte sizes). This gives the agent full visibility into how the transformation behaves and what to expect.

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

Conciseness5/5

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

The description is two tightly-packed sentences. The first sentence gets straight to the action and core behavior, the second covers return value and a source reference. No filler or repetition; every sentence earns its place.

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

Completeness5/5

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

For a simple single-parameter, read-only, idempotent tool with an output schema available, the description covers what the tool does, what it preserves, what it returns, and even cites the algorithm source. An agent has all the information needed to select and invoke this tool correctly.

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

Parameters3/5

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

The input schema has 100% coverage with a clear description for the only parameter, 'css' ('The CSS source to minify'). The tool description adds no additional parameter-specific meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

The first sentence names the exact action ('Minify CSS') and the resource ('CSS'), and even details the transformation rules (removing comments/whitespace, preserving quoted strings and calc() spaces). This clearly distinguishes it from sibling formatting/minification tools like HTML escape, JSON formatter, or simple whitespace removers.

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

Usage Guidelines4/5

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

The description makes the use-case obvious: use this when you need to minify CSS. It doesn't name alternatives or explicit when-not-to-use conditions, but given the sibling list contains no other CSS minifier and the name/title align, this is clear context without needing exclusions.

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

hopi_csv_to_jsonCSV to JSON converterA
Read-onlyIdempotent
Inspect

Convert CSV text into a JSON array, following standard CSV quoting rules for embedded commas, quotes and line breaks. With headers on, the first row becomes object keys; with headers off, each row is an array of strings. Source: https://hopi.co.uk/csv-to-json/

ParametersJSON Schema
NameRequiredDescriptionDefault
csvYesThe CSV text to convert
firstRowHeadersNoWhen true, the first row supplies the object keys; when false, every row becomes a plain array of strings (default true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
jsonNo
rowsNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
firstRowHeadersNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: it follows standard CSV quoting rules, handles embedded commas/quotes/line breaks, and explains the header behavior. It also cites the source, which is a nice transparency touch. It doesn't mention error handling for malformed CSV, but that's a minor gap given the annotations.

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

Conciseness5/5

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

Two sentences with no fluff. The core action and output are front-loaded, followed by the key behavioral details (quoting rules, header modes) and a source citation. Every sentence earns its place.

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

Completeness4/5

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

The tool is simple (2 params, 1 required) and has a rich schema plus an output schema. The description covers the conversion behavior, quoting rules, and header modes. It doesn't explicitly describe the return value shape, but the output schema exists and the description says 'JSON array', which is sufficient. A minor gap is the lack of mention of error handling for invalid CSV, but overall it's complete enough for an agent to call correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('csv' and 'firstRowHeaders'). The description adds a bit of context by explaining the header behavior in prose, but it largely mirrors the schema. Baseline 3 is appropriate because the schema does the heavy lifting and the description doesn't add significant new meaning beyond what's already in the schema.

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

Purpose5/5

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

The description states a specific verb ('Convert'), a clear resource ('CSV text'), and the output ('a JSON array'). It also distinguishes the two modes (headers on/off) and references standard CSV quoting rules, making the tool's purpose unambiguous. The sibling list includes hopi_json_to_csv, and this description clearly identifies the direction of conversion, so an agent can tell them apart.

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

Usage Guidelines4/5

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

The description explains the two header modes and the quoting rules, which tells an agent when the tool is appropriate for CSV parsing. It does not explicitly name alternatives or state when not to use it, but the context of a large sibling list of converters makes the purpose clear enough. A small gap: no mention of edge cases like empty input or malformed CSV, but the schema's minLength covers empty input.

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

hopi_cups_to_gramsCups to grams converterA
Read-onlyIdempotent
Inspect

Convert US cups of a common baking ingredient to grams (approximate). Ingredients: flour (plain flour), caster (caster sugar), brown (packed brown sugar), butter, cocoa (cocoa powder), oats, rice (uncooked rice), icing (icing sugar). Source: https://hopi.co.uk/cups-to-grams/

ParametersJSON Schema
NameRequiredDescriptionDefault
cupsYesNumber of US cups
ingredientYesThe ingredient

Output Schema

ParametersJSON Schema
NameRequiredDescription
cupsNo
gramsNo
summaryYes
ingredientNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
gramsPerCupNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, so the description only needs to add extra context. It does so by warning that the conversion is approximate and by citing the source of the conversion values.

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

Conciseness5/5

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

The core behavior is stated in the first clause, followed by a compact ingredient legend and a source URL. No sentence is wasted.

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

Completeness5/5

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

For a two-parameter, simple read-only conversion with a full input and output schema, nothing essential is missing: accepted ingredients are enumerated, the approximation caveat is present, and a source is provided for verification.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds value by expanding the terse enum literals into full ingredient names and clarifying special cases such as 'packed brown sugar' and 'uncooked rice'. The cups parameter's meaning is already clear from the schema.

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

Purpose5/5

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

The description uses a specific verb ('Convert'), resource ('US cups of a common baking ingredient to grams'), and qualifies the result as approximate. Listing exact ingredient keys distinguishes it from generic volume/weight converters among the siblings.

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

Usage Guidelines3/5

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

The phrase 'common baking ingredient' implies the intended use case, but the description never explicitly says when to choose this tool over sibling converters or when not to use it. Usage guidance is left to inference rather than stated.

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

hopi_currency_converterCurrency converterA
Read-onlyIdempotent
Inspect

Convert an amount of money from one currency to another using Hopi's live mid-market exchange rates (updated hourly, 150+ currencies). Use ISO 4217 codes such as GBP, EUR, USD, JPY. Source: https://hopi.co.uk/currency-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesCurrency to convert to, ISO 4217 code e.g. EUR
fromYesCurrency to convert from, ISO 4217 code e.g. GBP
amountYesThe amount to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
fromNo
rateNo
amountNo
resultNo
summaryYes
asOfUnixNo
completeNo
warningsNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
rateAgeHoursNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description need not repeat that. It adds valuable context about rate freshness (updated hourly) and coverage (150+ currencies), plus a source URL, giving the agent insight into data reliability. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, zero filler. The first sentence front-loads the core purpose and key data properties; the second gives code examples and a source link. Every word earns its place, and the structure is immediately scannable.

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

Completeness5/5

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

The tool is simple: three parameters, all documented in the schema, with an output schema present. Annotations cover safety. The description adds the only missing piece—rate source and update frequency—so an agent has everything needed to invoke it correctly. No gaps.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all three parameters. The description adds ISO 4217 code examples (GBP, EUR, USD, JPY) which reinforce the pattern and clarify expected input format, going slightly beyond the schema. This added guidance helps an agent construct valid calls.

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

Purpose5/5

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

The description clearly states the tool converts money between currencies using live mid-market rates, with a specific verb ('Convert') and resource ('currency'). It distinguishes itself from sibling converters (e.g., area, angle) by explicitly mentioning currency and ISO 4217 codes, leaving no ambiguity about its purpose.

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

Usage Guidelines4/5

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

While the description doesn't explicitly state 'use this for currency conversion only', the naming and content make it obvious. It gives clear context (live rates, 150+ currencies) but does not mention alternative tools or exclusions. For a single-purpose converter among many unrelated converters, this is sufficient.

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

hopi_data_size_converterData size converterA
Read-onlyIdempotent
Inspect

Convert a digital storage size between units. Units: B (bytes), KB, MB, GB, TB. By default 1 KB = 1000 bytes (decimal, as storage is sold). Set binary to true for 1 KB = 1024 bytes (as Windows reports drive sizes). Source: https://hopi.co.uk/data-size-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe size value to convert
binaryNoUse binary units (1 KB = 1024 bytes) instead of decimal (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYes
fromYes
valueYes
binaryYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds behavioral nuance about decimal vs binary conversion and the real-world rationale (storage sold vs Windows), which goes beyond the schema. It doesn't contradict any annotation.

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

Conciseness5/5

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

Two concise sentences plus a source link. The main purpose is front-loaded, the units are listed, and the binary/decimal explanation is compact and directly relevant. No filler or redundancy.

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

Completeness5/5

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

For a simple converter with a fully described schema, an output schema, and annotations covering safety and idempotency, the description is complete. It explains the units, the decimal/binary distinction, and provides a source, leaving no ambiguity for an agent to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so all parameters are documented. The description enriches the binary parameter by explaining 'as storage is sold' and 'as Windows reports drive sizes', giving practical meaning beyond the schema's technical description. This adds value without redundancy.

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

Purpose5/5

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

The description clearly states the verb 'convert' and the specific resource 'digital storage size between units', listing the exact units (B, KB, MB, GB, TB). This distinguishes it from other converter tools like length or weight converters, and the mention of decimal vs binary adds further specificity.

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

Usage Guidelines4/5

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

The description provides clear usage context by explaining when to use decimal (storage as sold) vs binary (Windows drive sizes), which is critical for correct conversion. It doesn't explicitly name alternatives, but the units and context make it obvious this is for digital storage, not other measurements.

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

hopi_date_calculatorDate calculatorA
Read-onlyIdempotent
Inspect

Add or subtract a number of days, weeks, months or years from a date. Dates use the YYYY-MM-DD format. Months and years are clamped to the last day of the target month where needed. Returns the resulting date. Source: https://hopi.co.uk/date-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesStart date in YYYY-MM-DD format
unitNoUnit to move by (default 'days')days
amountYesHow many units to move (0 to 100000)
directionNo'add' to move forwards, 'subtract' to move backwards (default 'add')add

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYes
unitYes
amountYes
resultYes
summaryYes
weekdayYes
directionYes
resultLongYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds genuine behavioral detail beyond those hints: months and years are clamped to the last day of the target month, and dates use YYYY-MM-DD. This is valuable edge-case disclosure for a simple pure calculator.

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

Conciseness5/5

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

The description is compact and well-structured: the operation and units are front-loaded, the format and edge-case behavior follow, and the source URL is harmlessly placed at the end. Every sentence earns its place.

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

Completeness5/5

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

For a deterministic date arithmetic tool, the description covers the operation, the accepted units, the expected date format, the key edge case (clamping), and the return value. The schema covers all parameters and the output schema covers the result, so nothing needed to invoke this tool correctly is missing.

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

Parameters4/5

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

The input schema already documents all parameters with descriptions and enums, so the baseline is 3. The description adds meaning beyond the schema by explaining the clamping behavior for months and years, which affects how the 'unit' parameter behaves. This justifies one step above baseline.

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

Purpose5/5

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

The description states a specific operation ('Add or subtract') on a specific resource ('a date') with exact units (days, weeks, months, years) and notes the return value. This is clearly distinguishable from siblings like hopi_add_working_days or hopi_days_between_dates.

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

Usage Guidelines4/5

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

The opening phrase gives the agent a precise selection condition: shift a calendar date by units of time. The unit list also implicitly excludes working-day-specific tools. However, no explicit alternative or when-not-to-use guidance is provided, so it falls just short of a 5.

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

hopi_day_of_week_calculatorDay of the week finderA
Read-onlyIdempotent
Inspect

Find which day of the week a given date falls on. Dates use the YYYY-MM-DD format. Also reports which weekday that same day and month falls on in the current year. Source: https://hopi.co.uk/day-of-week-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesThe date in YYYY-MM-DD format

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
summaryYes
weekdayNo
fullDateNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
thisYearWeekdayNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by disclosing the extra behavior—reporting the weekday for the same day/month in the current year—which is not inferable from the name or schema. This goes beyond annotations, though it could mention edge cases or output format, hence not a 5.

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

Conciseness5/5

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

Three sentences with zero fluff. The primary purpose is front-loaded, the format constraint is stated next, and the extra behavior follows. The source URL is a minor addition but useful for provenance. Every sentence earns its place; no redundancy with annotations or schema.

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

Completeness5/5

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

For a simple one-parameter read-only tool with an output schema (indicated by 'Has output schema: true') and annotations covering safety, the description is complete. It explains the main operation, the date format, and the auxiliary current-year lookup. No critical information for correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, with the parameter 'date' fully documented with type, format, and a matching description. The description merely repeats the YYYY-MM-DD format already present in the schema, adding no new semantic meaning. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose5/5

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

The description opens with a specific verb-resource pair ('Find which day of the week a given date falls on'), making the core purpose unmistakable. The date format and extra behavior (current-year weekday) add specificity, and the tool name itself differentiates it from date-related siblings like hopi_date_calculator and hopi_week_number.

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

Usage Guidelines4/5

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

The use case is clear: when you need the weekday of a specific date. It does not explicitly exclude alternatives or name sibling tools, but the focused phrasing ('day of the week') implies this tool is for exactly that. Lacks an explicit 'when not to use' clause, but the context is unambiguous.

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

hopi_day_rate_calculatorDay rate to salary calculatorA
Read-onlyIdempotent
Inspect

Convert between a contractor day rate and an annual salary equivalent using a chosen number of billable working days per year (default 220). Mode 'to_salary' turns a day rate into yearly, monthly and weekly figures; mode 'to_rate' turns a salary into a day rate. Gross amounts in GBP, before tax. Source: https://hopi.co.uk/day-rate-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'to_salary' from a day rate, or 'to_rate' from a salary
salaryNoAnnual salary in GBP (required for to_rate)
dayRateNoDay rate in GBP (required for to_salary)
workingDaysNoBillable working days per year, 1 to 365 (default 220)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
annualNo
weeklyYes
dayRateYes
monthlyNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
workingDaysYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable context by noting the amounts are gross in GBP before tax, and that output includes yearly, monthly, and weekly figures, which is beyond the annotations. It does not contradict any annotation.

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

Conciseness5/5

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

The description is a single, well-structured paragraph that front-loads the core purpose and immediately follows with the two modes and key defaults. It is concise, with no wasted words, and every sentence contributes to understanding how to use the tool.

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

Completeness5/5

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

The tool is a simple calculator with clear schema and annotations. The description covers the essential operational aspects: purpose, modes, default working days, output types, currency, and tax treatment. Since an output schema exists, return values are already specified elsewhere. Nothing critical for an agent to call it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so every parameter (mode, salary, dayRate, workingDays) is documented in the schema. The description adds value by explaining the default workingDays (220) and the nature of the output (yearly, monthly, weekly figures), which is not in the schema. This enriches the meaning of the parameters beyond the schema definitions.

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

Purpose5/5

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

The description clearly states the tool converts between a contractor day rate and annual salary equivalent, specifying the two modes ('to_salary' and 'to_rate') and the default working days (220). It is distinct from sibling calculators by focusing on day rate vs salary conversion, and the verb 'convert' plus resource 'day rate and annual salary' makes the purpose unambiguous.

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

Usage Guidelines4/5

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

The description explains the two modes and what each does ('to_salary' turns a day rate into yearly, monthly, and weekly figures; 'to_rate' turns a salary into a day rate). This gives clear guidance on when to use each mode. It does not explicitly mention alternatives like hourly_to_salary or pro_rata_salary_calculator, but the tool's specific scope is evident from the name and description, so a 4 is appropriate.

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

hopi_days_between_datesDays between dates calculatorA
Read-onlyIdempotent
Inspect

Count the number of days between two dates, with the total also shown in weeks and in weekdays (Monday to Friday). Dates use the YYYY-MM-DD format. Set inclusive to true to count both end days. Source: https://hopi.co.uk/days-between-dates/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesEnd date in YYYY-MM-DD format
fromYesStart date in YYYY-MM-DD format
inclusiveNoCount both end days rather than excluding the end day (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYes
daysYes
fromYes
weeksYes
summaryYes
swappedYes
weekdaysYes
inclusiveYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
remainderDaysYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the operation read-only, idempotent, and non-destructive. The description adds valuable behavioral context: the result includes weeks and weekdays, dates follow YYYY-MM-DD, and inclusive changes end-day counting. No contradiction exists.

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

Conciseness5/5

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

Three sentences plus a source URL. Each sentence carries distinct information: output units, date format, inclusive option. Core purpose is front-loaded and there is no redundancy or filler.

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

Completeness5/5

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

The tool is read-only, has a fully documented schema, and an output schema exists. The description covers everything needed for correct invocation: date format, inclusive semantics, and output dimensions. Source link adds credibility. No critical gaps.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description largely repeats what the schema already states (date format, inclusive behavior), adding minimal extra meaning beyond making the default semantics explicit.

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

Purpose5/5

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

The description opens with a specific verb ('Count') and resource ('number of days between two dates'), and further specifies output units (days, weeks, weekdays with Monday-to-Friday definition). This uniquely identifies the tool among many calculator siblings without requiring schema inspection.

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

Usage Guidelines4/5

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

The core use case is clearly stated: count days between two dates. It also explains the optional inclusive flag semanticsikuha. However, it does not explicitly name alternatives or state when-not-to-use, so while context is clear, exclusions are absent.

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

hopi_days_until_christmasDays until ChristmasA
Read-onlyIdempotent
Inspect

Count the number of sleeps until the next Christmas Day (25 December). Uses today's date by default, or an optional 'from' date in YYYY-MM-DD format. Source: https://hopi.co.uk/days-until-christmas/

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoOptional date to count from, in YYYY-MM-DD format (defaults to today)

Output Schema

ParametersJSON Schema
NameRequiredDescription
sleepsNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
christmasDateNo
isChristmasDayNo
christmasWeekdayNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context by noting the default-to-today behavior and the optional 'from' date, plus the 'next Christmas' logic implicit in the phrasing. It does not contradict annotations.

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

Conciseness5/5

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

Two sentences, zero filler. The primary purpose and default behavior are front-loaded, and the source attribution is neatly appended. Every sentence earns its place.

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

Completeness5/5

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

For a simple, single-optional-parameter utility, the description fully covers what an agent needs: what it counts, the target date, the default and optional input, and the format. An output schema exists to handle return-value details, and annotations cover safety. Nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, with the 'from' parameter already documented as 'Optional date to count from, in YYYY-MM-DD format (defaults to today)'. The description's mention of an optional 'from' date in the same format adds no additional semantic value beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description names a precise verb ('Count') and an unambiguous resource ('the number of sleeps until the next Christmas Day'), with the date specified as 25 December. This makes it immediately distinguishable from generic date utilities like hopi_date_calculator or hopi_days_between_dates.

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

Usage Guidelines4/5

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

The description clearly explains the default behavior (uses today's date) and the optional 'from' date, giving enough context to know when to invoke the tool. It doesn't explicitly name alternatives or exclusions, but the narrow Christmas-only scope makes misuse unlikely, so the context is clear without explicit sibling comparison.

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

hopi_dca_calculatorCrypto DCA calculatorA
Read-onlyIdempotent
Inspect

Work out the average cost basis across a series of pound-cost-averaged buys. Each buy is an amount of money spent and the price paid per unit. Returns total invested, coins acquired and average cost, plus current value and unrealised profit or loss if a current price is given. Figures are treated as GBP. Source: https://hopi.co.uk/dca-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
buysYesThe list of buys
currentPriceNoCurrent price per unit (optional), to value the position now

Output Schema

ParametersJSON Schema
NameRequiredDescription
buysYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
averageCostYes
coinsAcquiredYes
totalInvestedYes
averageCostStringYes
coinsAcquiredStringYes
totalInvestedStringYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context beyond that: it details the return values (total invested, coins acquired, average cost, current value, unrealised profit/loss) and clarifies the currency treatment (GBP).

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

Conciseness4/5

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

The description is concise: three sentences covering purpose, inputs, outputs, and currency. It is front-loaded with the main purpose. The source link at the end is optional metadata but not disruptive.

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

Completeness5/5

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

For a read-only calculator with an output schema, the description is complete. It explains the input structure, the optionality of currentPrice, all return categories, and the currency assumption. An agent has enough information to call the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for amount, price, and currentPrice. The description largely paraphrases these, adding only the GBP context and the pound-cost-averaging framing. It meets the baseline but doesn't add substantial new parameter meaning.

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

Purpose4/5

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

The description states a specific verb and resource: 'work out the average cost basis across a series of pound-cost-averaged buys.' This clearly identifies the tool's function. However, it does not explicitly differentiate it from sibling tools like hopi_crypto_profit_calculator, so it stops short of a 5.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: for a series of pound-cost-averaged buys, with optional current price for valuation. It doesn't explicitly mention when not to use it or name alternatives, but the use case is well-defined.

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

hopi_dice_rollerDice rollerA
Read-onlyIdempotent
Inspect

Roll one or more dice with a given number of sides. Returns each die result plus the total, highest and lowest. Source: https://hopi.co.uk/dice-roller/

ParametersJSON Schema
NameRequiredDescriptionDefault
sidesNoNumber of sides on each die (default 6)
quantityNoHow many dice to roll, 1 to 20 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
sidesYes
totalYes
lowestYes
highestYes
resultsYes
summaryYes
quantityYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already convey that the tool is read-only, idempotent, and non-destructive. The description adds useful behavioral context by disclosing exactly what is returned: each die result plus total, highest, and lowest. It could have explicitly noted that results are random per call, but 'roll dice' strongly implies this and the annotations cover the safety profile.

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

Conciseness5/5

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

The description is a single compact sentence that leads with the action, then states the output shape, and ends with a brief source attribution. There is no filler, and every part contributes to understanding or trust.

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

Completeness5/5

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

For a two-parameter, all-optional, read-only tool with a full output schema and safety annotations, the description provides the essential behavior and return contents. Nothing needed to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%: both 'sides' and 'quantity' already have types, defaults, ranges, and descriptions. The tool description does not add any parameter-specific meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource—'Roll one or more dice'—and enumerates the distinctive return values (each die result plus total, highest, lowest). This clearly separates it from sibling tools like random_number_generator or coin_flip despite the generic title.

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

Usage Guidelines3/5

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

The intended use is clearly implied: use this when the user wants dice rolls. However, it does not explicitly name alternatives or state when not to use it, which would be useful given the large sibling set of random/selection tools. The description leaves the decision to inference rather than providing explicit routing.

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

hopi_diff_checkerDiff checkerA
Read-onlyIdempotent
Inspect

Compare two texts line by line using a longest common subsequence diff, and report which lines were added and which were removed. An edited line shows as one removed line plus one added line. Comparison is exact, including spaces and case. Source: https://hopi.co.uk/diff-checker/

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesThe original (left) text
bYesThe changed (right) text

Output Schema

ParametersJSON Schema
NameRequiredDescription
diffNo
addedNo
removedNo
summaryYes
identicalNo
addedLinesNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
removedLinesNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds useful behavioral details beyond annotations: it explains the LCS algorithm, exact comparison sensitivity, and how edits are represented as a removal plus an addition. This helps set expectations for the result format.

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

Conciseness5/5

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

Three sentences with no filler. The core behavior is front-loaded, and the extra details about edited lines and comparison sensitivity are directly useful. The source URL is a minor but reasonable inclusion.

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

Completeness5/5

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

For a two-parameter read-only tool with a full input schema and an output schema, the description is complete. It explains the algorithm, comparison semantics, and result interpretation. Nothing needed for correct invocation is missing.

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

Parameters4/5

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

The schema already describes the two parameters (original left text, changed right text) with 100% coverage. The description adds meaning by explaining that comparison is line-by-line and exact, which clarifies how the parameters relate to each other. It does not merely repeat the schema.

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

Purpose5/5

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

The description states a specific operation: comparing two texts line by line using a longest common subsequence diffhare, and reports which lines are added or removed. It clearly distinguishes this tool from the many calculator and text-manipulation siblings by specifying the exact diffing behavior and output style.

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

Usage Guidelines4/5

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

The description provides clear context: it is for line-by-line text comparison, with exact matching including spaces and case. It does not explicitly name alternatives or when not to use it, but the behavior is specific enough that an agent can infer its use case. No sibling tool directly competes with it.

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

hopi_discount_calculatorDiscount & sale price calculatorA
Read-onlyIdempotent
Inspect

Work out a discount and sale price. Mode 'pct': a percentage off a price. Mode 'fixed': a fixed pound amount off a price. Mode 'find': the discount percentage from an original price and a final price. All money figures are in pounds. Source: https://hopi.co.uk/discount-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'pct' percentage off, 'fixed' pound amount off, or 'find' the discount from two prices
priceYesThe original price (used in all modes)
amountOffNoFixed pound amount off (mode 'fixed' only)
finalPriceNoThe final price paid (mode 'find' only)
percentOffNoDiscount percentage (mode 'pct' only)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
priceYes
savingYes
summaryYes
salePriceNo
percentOffNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
effectiveDiscountNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context beyond annotations: it specifies that all monetary values are in pounds, documents three calculation modes, and references the source authority. No contradictions with annotations.

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

Conciseness5/5

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

The description is compact and well-structured: a one-line purpose statement, three mode explanations, and a short currency/source note. Each sentence earns its place, 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.

Completeness5/5

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

The tool has moderate complexity with three conditionally-required parameter sets, but the schema covers the conditional requirements and the description covers the mode semantics and currency. With annotations handling side-effect safety and an output schema present, nothing essential is missing for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents every parameter. The description adds only the currency convention and restates mode meanings that the schema already provides. This meets the baseline for full schema coverage without substantially extending parameter understanding.

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

Purpose5/5

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

The description leads with a concrete action ('Work out a discount and sale price') and then enumerates three distinct calculation modes, each tied to a specific input relationship ('pct', 'fixed', 'find'). This makes the tool's role clear and distinguishes it from sibling percentage/discount-related calculators.

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

Usage Guidelines4/5

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

The description gives clear mode-by-mode context for when to use the tool: percentage off, fixed amount off, or deriving a discount percentage from two prices. It does not explicitly name alternatives or state when not to use it, so it stops short of a 5, but the context is sufficient for routine selection.

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

hopi_dog_age_calculatorDog age calculatorA
Read-onlyIdempotent
Inspect

Convert a dog's age in years to an approximate human age, using the standard veterinary chart. The later rate depends on the dog's size: small, medium or large. Returns the human-equivalent age. Source: https://hopi.co.uk/dog-age-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoDog size band (default 'medium')medium
dogAgeYesThe dog's age in years (0 to 30)

Output Schema

ParametersJSON Schema
NameRequiredDescription
sizeNo
dogAgeNo
summaryYes
humanYearsNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations mark this as read-only, idempotent, and non-destructive, so the safety profile is already covered. The description adds meaningful behavioral context by explaining that the age conversion depends on dog size and that the result is a human-equivalent age. This goes beyond the annotations and gives the agent a useful mental model of the calculation.

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

Conciseness5/5

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

The description is three concise sentences, each earning its place: purpose, size-dependent behavior, and result. The source URL is useful supplementary context without bloating the description. Information is front-loaded and there is no redundant phrasing.

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

Completeness5/5

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

For a simple calculator with two parameters and an output schema, the description is complete. It explains what the tool does, how size factors in, and what result to expect. The schema already covers parameter constraints and defaults, so the description does not need to repeat those details.

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

Parameters4/5

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

Schema coverage is 100%, so the parameters are well-documented in the schema itself. The description additionally explains why the size parameter matters, noting that the later conversion rate depends on whether the dog is small, medium, or large. This adds semantic meaning beyond the raw schema descriptions.

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

Purpose5/5

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

The description clearly states the tool converts a dog's age in years to approximate human age using a standard veterinary chart. It explicitly names the domain (dog) and resource (age), distinguishing it from hopi_age_calculator and hopi_cat_age_calculator. The verb 'Convert' plus the specific resource makes the purpose immediately recognizable.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: whenever a dog's age needs conversion to human-equivalent age. It does not explicitly name alternatives or exclusions, but the dog-specific wording and size-band handling make the intended use obvious. A 4 is appropriate because context is clear but alternatives are not explicitly discussed.

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

hopi_download_time_calculatorDownload time calculatorA
Read-onlyIdempotent
Inspect

Estimate how long a download takes. Give a file size with its unit (MB, GB, TB) and a connection speed with its unit (Mbps or Gbps in bits per second, or MBps in bytes per second). Returns a human-readable duration and the time in seconds. Source: https://hopi.co.uk/download-time-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeYesFile size value
speedYesConnection speed value
sizeUnitYesFile size unit
speedUnitYesSpeed unit: Mbps/Gbps are bits per second, MBps is megabytes per second

Output Schema

ParametersJSON Schema
NameRequiredDescription
sizeNo
speedNo
secondsNo
summaryYes
durationNo
sizeUnitNo
speedUnitNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
megabytesPerSecondNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral detail by specifying the expected return values: a human-readable duration and time in seconds. It also clarifies the bit/byte distinction for speed units, which is critical to understanding how the estimate is computed.

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

Conciseness5/5

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

The description is compact and front-loaded: the core purpose appears in the first sentence, input requirements in the second, and output plus source in the third. Every sentence earns its place, and there is no filler or redundant restating of the tool name.

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

Completeness5/5

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

Given the simple calculator nature, rich annotations, 100% schema coverage, and presence of an output schema, the description covers everything an agent needs: purpose, required inputs, unit rules, output shape, and an attribution source. No critical gap remains for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explicitly instructing the user to provide a file size with a unit and a connection speed with a unit, and by restating the bit/byte distinction in the main text rather than leaving it only in the parameter description. This helps an agent understand the semantic intent of the parameters even before inspecting the schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Estimate how long a download takes.' It clearly names the required inputs and what is returned, making the tool's purpose unambiguous. It is also distinct from sibling calculators because no other sibling offers download-time estimation, and the unit clarifications prevent confusion with converter tools.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: whenever a download duration needs to be estimated from file size and connection speed. It does not explicitly name alternatives or exclusions, but there is no obvious sibling tool that would compete for this exact task, so the context is sufficient.

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

hopi_due_date_calculatorPregnancy due date calculatorA
Read-onlyIdempotent
Inspect

Estimate a pregnancy due date from the first day of the last menstrual period (LMP) and cycle length. Method: adjust the LMP by (cycle - 28) days, then add 280 days for the due date. Also returns the dates the second and third trimesters begin (LMP-adjusted + 84 and + 182 days). Dates are ISO 'YYYY-MM-DD'. Source: https://hopi.co.uk/due-date-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
lmpYesFirst day of the last menstrual period, ISO date 'YYYY-MM-DD'
cycleLengthNoCycle length in days, 20 to 45 (default 28)

Output Schema

ParametersJSON Schema
NameRequiredDescription
lmpNo
dueDateNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
cycleLengthNo
trimester2StartsNo
trimester3StartsNo

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond the readOnly/idempotent annotations by disclosing the exact calculation method: adjust LMP by (cycle - 28), add 280 days, and add +84 and +182 days for trimester starts. It also states the ISO date format, giving the agent a precise behavioral model.

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

Conciseness5/5

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

Every sentence earns its place: purpose, algorithm, trimester offsets, date format, and source. The description is informative yet compact, with no redundant or vague phrasing.

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

Completeness5/5

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

The schema fully documents parameters, annotations cover safety, and the description explains the algorithm and return values. An agent has everything needed to invoke the tool correctly without guessing at behavior or output semantics.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents lmp and cycleLength. The description adds value by explaining how the parameters interact in the formula, particularly the cycle-length adjustment, which is not obvious from the schema alone.

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

Purpose5/5

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

The description names the exact operation ('Estimate a pregnancy due date'), specifies the inputs (LMP and cycle length), and adds the distinct scope of returning trimester start dates. This clearly separates it from generic date or age calculators.

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

Usage Guidelines4/5

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

The intended use case is clearly stated: pregnancy due date estimation from LMP and cycle length. It does not explicitly name alternative calculators or exclusion cases, but the domain-specific purpose is unambiguous among the sibling set.

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

hopi_dummy_data_generatorDummy data generatorA
Read-onlyIdempotent
Inspect

Generate fake but safe UK test records. Phone numbers come from Ofcom's reserved drama ranges and emails use RFC 2606 example domains, so no record can reach a real person. Returns an array of records, plus CSV text. Source: https://hopi.co.uk/dummy-data-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesHow many records to generate, from 1 to 1000
fieldsNoWhich fields to include (default all). Choose from firstName, lastName, fullName, email, ukMobile, ukLandline, streetAddress, town, postcode, dateOfBirth, company

Output Schema

ParametersJSON Schema
NameRequiredDescription
csvNo
rowsNo
countNo
fieldsNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

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

The description adds valuable behavioral detail beyond the readOnly/idempotent/destructive annotations: phone numbers use Ofcom reserved drama ranges, emails use RFC 2606 domains, and it states the return shape (array plus CSV). This gives an agent confidence that the generated data is safe to use.

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

Conciseness5/5

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

The description is compact and well-structured: core purpose first, then concrete safety behavior, output format, and a source link. Every sentence adds useful information with no filler.

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

Completeness4/5

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

For a two-parameter tool with a full schema and output schema, the description covers the essential context: what is generated, why it is safe, and what format is returned. A minor gap is that it does not state whether generated data is random/deterministic or that fields default to all when omitted, though the schema covers the default.

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

Parameters3/5

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

Schema description coverage is 100%, with count and fields clearly explained in the input schema. The description adds no param-specific detail, but it does not need to since the schema fully documents the parameters.

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

Purpose5/5

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

The description clearly identifies a specific operation: generate fake but safe UK test records. This distinguishes it from sibling generators that produce single values such as usernames or random numbers.

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

Usage Guidelines4/5

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

The phrase 'fake but safe UK test records' makes the intended use obvious: creating dummy data for testing without risking contact with real people. It does not explicitly name alternatives or exclusions, but the context is clear.

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

hopi_emoji_removerEmoji removerA
Read-onlyIdempotent
Inspect

Remove emoji from a block of text, leaving the words and normal punctuation intact. Joined emoji sequences (such as a family or a flag) count as a single emoji. The copyright, registered and trademark symbols are kept. Returns the cleaned text and how many emoji were removed. Source: https://hopi.co.uk/emoji-remover/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to clean

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultNo
removedNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

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

The description adds valuable behavior beyond the annotations: joined emoji sequences count as one emoji, legal symbols are kept, and the output includes a removal count. It also states the source. No contradiction with readOnlyHint, idempotentHint, or destructiveHint exists.

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

Conciseness5/5

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

The description is compact and front-loaded: operation in the first clause, edge cases in the second sentence, and return value in the third. The source attribution is the only non-operational detail and it is brief.

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

Completeness5/5

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

For a one-parameter, non-destructive, idempotent text transform with an output schema, the description is complete: it defines behavior, preserves relevant edge cases, and announces both return elements. Nothing needed for correct invocation is missing.

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

Parameters3/5

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

The single required parameter 'text' is already fully described in the input schema as 'The text to clean.' The description adds no extra semantic detail about the parameter itself, so the schema-coverage baseline of 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Remove emoji from a block of text, leaving the words and normal punctuation intact.' This clearly distinguishes it from sibling text utilities such as hopi_remove_line_breaks and hopi_remove_extra_spaces by naming the exact target and preservation behavior.

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

Usage Guidelines4/5

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

The use case is clear: use this when the input is raw text containing emoji that should be stripped while preserving words and punctuation. It does not explicitly name alternatives or exclusions, but the focused emoji-specific behavior and sibling set make the intended context obvious.

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

hopi_energy_cost_calculatorEnergy running cost calculatorA
Read-onlyIdempotent
Inspect

Work out the running cost of an electrical appliance from its power in watts, hours used per day and your electricity unit price in pence per kWh. Returns daily, weekly, monthly and yearly cost plus kWh used. Costs in GBP. Source: https://hopi.co.uk/energy-cost-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
wattsYesAppliance power draw in watts (0 to 100000)
hoursPerDayYesHours used per day (0 to 24)
pencePerKwhYesElectricity unit price in pence per kWh

Output Schema

ParametersJSON Schema
NameRequiredDescription
wattsNo
summaryYes
kwhPerDayNo
costPerDayNo
kwhPerYearNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
costPerWeekNo
costPerYearNo
hoursPerDayNo
pencePerKwhNo
costPerMonthNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is established. The description adds valuable behavioral context beyond those annotations by specifying the exact outputs (daily, weekly, monthly, yearly cost plus kWh used) and noting costs are in GBP.

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

Conciseness5/5

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

The description is compact and front-loaded: the first sentence states purpose and inputs, the second states outputs, and the third gives currency and source. No wasted words, and the structure supports quick agent parsing.

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

Completeness5/5

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

For a simple calculator tool with a complete input schema, an output schema, and safety annotations, the description provides everything an agent needs: purpose, required inputs, return values, and units. There are no meaningful gaps.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters with units and ranges. The description restates the inputs in prose but adds no extra semantic detail beyond what the schema provides, matching the baseline expectation.

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

Purpose5/5

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

The description opens with a specific verb-resource pair: 'Work out the running cost of an electrical appliance', and clearly lists the three inputs. This distinguishes the tool from siblings like fuel_cost_calculator and unit_price_calculator, which address different domains.

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

Usage Guidelines3/5

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

The description makes the intended use case clear: an agent can infer it should be used when someone wants appliance running cost from watts, hours, and pence per kWh. However, it does not explicitly state when not to use it or name alternative tools, so the guidance is implied rather than explicit.

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

hopi_env_to_jsonenv to JSON converterA
Read-onlyIdempotent
Inspect

Convert between a .env file and a JSON object. In env-to-json mode, each line is split on its first equals sign into a key and value, blank and commented lines are skipped, a leading export is removed, and matching surrounding quotes are stripped (double-quoted values also unescape \n); duplicate keys keep the last value. In json-to-env mode, a JSON object becomes KEY=value lines, quoting values that contain spaces, a hash or a newline. Source: https://hopi.co.uk/env-to-json/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'env-to-json' parses a .env file into JSON, 'json-to-env' turns a JSON object into .env lines (default env-to-json)env-to-json
textYesThe .env file text, or the JSON object text, depending on mode

Output Schema

ParametersJSON Schema
NameRequiredDescription
outputYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

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

The description goes far beyond annotations by enumerating precise parsing rules: split on first equals, skip blank/commented lines, remove leading export, strip quotes, unescape \n, last duplicate key wins, and json-to-env quoting rules. This is rich behavioral context that readOnlyHint/idempotentHint/destructiveHint do not convey.

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

Conciseness5/5

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

One dense, well-organized paragraph with the core purpose front-loaded, followed by mode-specific rules. Every sentence earns its place, the edge cases are covered, and the source URL is a useful extra without padding.

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

Completeness5/5

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

The description is complete for a two-mode converter: parsing rules, escaping behaviors, duplicate handling, and both directions are covered. The schema documents parameters and defaults, and an output schema exists for return values. Nothing essential is missing.

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

Parameters3/5

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

Schema coverage is 100%: both mode and text are documented with descriptions, and the mode enum values are explained. The tool description elaborates on behavior but does not add parameter-level detail beyond what the schema already provides, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb, resource, and both directions: 'Convert between a .env file and a JSON object'. This clearly differentiates it from sibling conversion tools like hopi_csv_to_json or hopi_json_to_csv, since .env is a distinct format.

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

Usage Guidelines4/5

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

The description makes usage context unambiguous: use it when a .env file needs to become JSON or vice versa. It does not explicitly name alternatives or when-not-to-use, but no sibling tool targets .env format, so the context is clear and no exclusions are needed.

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

hopi_eth_address_checksumEthereum address checksumA
Read-onlyIdempotent
Inspect

Validate an Ethereum address's EIP-55 capitalisation checksum and return the correctly checksummed form. Reports whether the input is already checksummed, lacks a checksum (all one case), or fails the checksum. Uses keccak-256 exactly as EIP-55 specifies. Source: https://hopi.co.uk/eth-address-checksum/

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe Ethereum address, with or without a 0x prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
validYes
statusNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
checksummedNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds valuable behavioral detail: it specifies the exact algorithm (keccak-256 per EIP-55) and describes the three possible outputs (checksummed, lacking checksum, or failed), which goes beyond annotations. No contradictions exist.

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

Conciseness5/5

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

The description is three sentences with zero fluff. The first sentence states the core action and result, the second enumerates the output categories, and the third cites the exact algorithm and source. Every sentence earns its place, and the structure is scannable.

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

Completeness4/5

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

For a single-parameter read-only tool with an output schema present, the description covers the essential behavioral contract: input validation, algorithm, and the possible result states. It does not detail edge cases like malformed address lengths, but these are minor and reasonably implied by 'fails the checksum'. Overall, the description is sufficiently complete for an agent to use it correctly.

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

Parameters3/5

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

The schema already provides 100% coverage for the single 'address' parameter, describing it as 'The Ethereum address, with or without a 0x prefix'. The description does not add further parameter-specific details, so the baseline of 3 is appropriate. It neither harms nor enhances the schema's clarity.

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

Purpose5/5

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

The description explicitly names the verb 'Validate', the resource 'Ethereum address's EIP-55 capitalisation checksum', and the outcome 'return the correctly checksummed form'. It also reports the three possible classification states, making the tool's purpose unmistakable and distinct from sibling tools like hopi_eth_unit_converter or hopi_bitcoin_address_validator.

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

Usage Guidelines3/5

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

Usage is implied by the description: use this tool to validate Ethereum EIP-55 checksums. However, there is no explicit guidance on when to choose this over alternatives, such as when a Bitcoin address validator would be appropriate, nor any stated exclusions. The description relies on the tool name and context to convey applicability.

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

hopi_eth_unit_converterETH unit converterA
Read-onlyIdempotent
Inspect

Convert an amount given in wei, gwei or ETH into all three units, using exact 18-decimal integer maths (no floating point error). 1 ETH is 1e18 wei; 1 gwei is 1e9 wei. Source: https://hopi.co.uk/eth-unit-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
unitYesThe unit the amount is given in
amountYesThe amount to convert, as a plain number (string preferred to keep full precision), e.g. "1.5"

Output Schema

ParametersJSON Schema
NameRequiredDescription
ethYes
weiYes
gweiYes
summaryYes
ethPrettyYes
weiPrettyYes
gweiPrettyYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds value beyond those by specifying exact 18-decimal integer mathematics, the no-floating-point-error guarantee, and the exact conversion constants (1 ETH = 1e18 wei, 1 gwei = 1e9 wei).

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

Conciseness4/5

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

The description is short and front-loaded with the action and scope. The conversion factors are useful, and the source URL is the only mildly extraneous element, but it is a single clause and does not meaningfully reduce clarity.

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

Completeness5/5

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

For a simple two-parameter converter, the description, annotations, and full input/output schemas leave nothing essential missing. The description covers the conversion behaviour, the precision guarantee, and the valid units.

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

Parameters4/5

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

Schema coverage is 100% and both parameters have descriptions, so the baseline is 3. The description goes beyond the schema by explaining what the units mean mathematically and by specifying that the output will include all three units, which clarifies how the amount should be interpreted.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Convert an amount given in wei, gwei or ETH', and states the output is all three units. This makes the tool's function unmistakable and distinguishes it from the many other converters in the sibling list.

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

Usage Guidelines4/5

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

The first sentence clearly defines the trigger condition: an amount expressed in wei, gwei, or ETH that needs conversion into all three units. It provides clear context but does not explicitly name an alternative or state when not to use it, so it falls just short of full routing guidance.

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

hopi_euromillions_generatorEuroMillions number generatorA
Read-onlyIdempotent
Inspect

Generate random EuroMillions lines. Each line has 5 main numbers from 1 to 50 and 2 Lucky Stars from 1 to 12. Source: https://hopi.co.uk/euromillions-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNoHow many lines to generate, 1 to 10 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
linesNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish read-only, non-destructive behavior. The description adds genuinely useful behavior beyond that: the output is random and each line follows the exact EuroMillions format. It doesn't discuss duplicate handling or error behavior, but for a simple generator with an output schema this is sufficient.

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

Conciseness5/5

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

Two tight sentences that lead with the core action and immediately give the format constraints; the source URL is a minor but non-intrusive addition. There is no redundant restatement of the schema.

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

Completeness5/5

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

For a simple, stateless generator with one optional parameter, an output schema, and safety annotations, the description covers what the agent needs to invoke it. Nothing required for correct selection is missing.

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

Parameters3/5

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

The schema fully documents the only parameter (lines: range, default, description), so the description carries no extra burden. The word 'lines' in the description corroborates the parameter but adds no new semantic information.

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

Purpose5/5

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

Uses a specific verb ('generate') and resource ('random EuroMillions lines'), then pins down the exact composition (5 main numbers 1–50, 2 Lucky Stars 1–12), which separates it from generic siblings like hopi_lottery_number_generator.

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

Usage Guidelines3/5

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

The usage context is implied: use it when random EuroMillions lines are needed. It does not explicitly contrast with alternatives (e.g. hopi_lottery_number_generator for generic lottery draws) or mention exclusions, so the guidance is adequate but not explicit.

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

hopi_event_wine_calculatorEvent wine calculatorA
Read-onlyIdempotent
Inspect

Work out how many bottles of red, white and Champagne to buy for an event, from the number of guests and glasses per guest. Ticking different wines splits a colour into one wine per glass, each poured once for every guest. Source: https://hopi.co.uk/event-wine-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsYesNumber of guests
redSizeNoRed glass size in ml: 125, 175 or 250
whiteSizeNoWhite glass size in ml: 125, 175 or 250
redGlassesNoGlasses of red per guest
redDifferentNoServe a different red for each glass
whiteGlassesNoGlasses of white per guest
sparklingSizeNoSparkling glass size in ml: 100, 125 or 150
whiteDifferentNoServe a different white for each glass
sparklingGlassesNoGlasses of Champagne or sparkling per guest
sparklingDifferentNoServe a different sparkling for each glass

Output Schema

ParametersJSON Schema
NameRequiredDescription
guestsNo
summaryYes
breakdownNo
overageMlNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
totalBottlesNo
glassesPerGuestNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating calculation. The description adds the behavioral detail that 'ticking different wines splits a colour into one wine per glass, each poured once for every guest,' which clarifies the calculation logic beyond the schema. However, it doesn't disclose rounding behavior, bottle size assumptions, or whether results are per bottle size (e.g., 75cl standard), which would be useful for a calculator tool.

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

Conciseness4/5

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

The description is two sentences and front-loads the core purpose. The first sentence is a clear, actionable statement of what the tool does. The second sentence adds a useful behavioral nuance about the 'different wines' option. The source URL is a minor addition that could be considered extraneous, but it doesn't detract significantly. It's efficient and well-structured.

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

Completeness4/5

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

Given the tool has an output schema (not shown but indicated), the description doesn't need to explain return values. The annotations cover safety (read-only, idempotent, non-destructive). The description covers the core inputs (guests, glasses per guest) and the key behavioral nuance (splitting colours). The only gap is the lack of explicit mention of bottle size assumptions or rounding, but for a simple calculator with a rich schema, this is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 10 parameters with clear descriptions (e.g., 'Red glass size in ml: 125, 175 or 250'). The description adds the conceptual meaning of the 'Different' boolean parameters ('splits a colour into one wine per glass'), which is valuable. However, it doesn't explain the relationship between glass size and bottle count, or any defaults for optional parameters, so it doesn't fully compensate beyond the schema's already strong coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Work out how many bottles of red, white and Champagne to buy for an event, from the number of guests and glasses per guest.' It uses a specific verb ('work out'), names the resource (bottles of wine for an event), and distinguishes it from the many sibling calculators by focusing on event wine quantities. The additional sentence about splitting colours into one wine per glass adds useful specificity.

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

Usage Guidelines4/5

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

The description implies the primary use case: planning wine purchases for an event based on guest count and glasses per guest. It doesn't explicitly state when not to use it or name alternatives, but the context of the sibling tools (all different calculators) makes the usage context reasonably clear. The mention of 'ticking different wines' gives a hint about optional parameters, but there's no explicit exclusion or alternative routing.

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

hopi_fraction_calculatorFraction calculatorA
Read-onlyIdempotent
Inspect

Add, subtract, multiply or divide two fractions, giving the simplified result, a mixed number where relevant, and the decimal value. Each fraction is a numerator over a denominator, all whole numbers (numerators may be negative). Source: https://hopi.co.uk/fraction-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
d1YesFirst denominator (not zero)
d2YesSecond denominator (not zero)
n1YesFirst numerator
n2YesSecond numerator
opYesOperation: add, sub (subtract), mul (multiply) or div (divide)

Output Schema

ParametersJSON Schema
NameRequiredDescription
opYes
mixedYes
resultYes
decimalYes
summaryYes
numeratorYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
denominatorYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds value by detailing the result composition: simplified fraction, mixed number where relevant, and decimal value. It also clarifies input constraints like whole numbers and negative numerators, which is useful context beyond the annotations.

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

Conciseness5/5

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

The description is two sentences with no filler. The first sentence front-loads the operations and outputs, the second states the input format and source. Every clause earns its place.

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

Completeness4/5

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

For a calculator with an output schema and safe, read-only annotations, the description covers the operations, expected outputs, and input constraints. The phrase 'where relevant' leaves the mixed-number condition slightly vague, but overall the tool is sufficiently described for correct invocation.

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

Parameters3/5

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

The input schema covers all five parameters with descriptions, including the op enum and non-zero denominators, so the baseline is 3. The description adds only minor extra meaning (whole numbers, negative numerators) that is largely implied by the integer types, and does not significantly compensate for any gap.

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

Purpose5/5

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

The description states a specific verb and resource: add, subtract, multiply or divide two fractions, and specifies the results (simplified, mixed number, decimal). This clearly distinguishes it from sibling tools like hopi_fraction_to_decimal, which performs conversion rather than arithmetic.

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

Usage Guidelines3/5

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

The description implies use for fraction arithmetic by stating the exact operations, but it does not explicitly mention when to choose this tool over alternatives such as hopi_fraction_to_decimal or hopi_scientific_calculator. No exclusions or alternative routing are provided, leaving the agent to infer the appropriate context.

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

hopi_fraction_to_decimalFraction to decimal converterA
Read-onlyIdempotent
Inspect

Convert between fractions and decimals. Mode 'toDecimal': give a numerator and denominator (whole numbers) to get the decimal and percentage. Mode 'toFraction': give a decimal to get the closest simplified fraction (denominator up to 10,000), noting whether it is exact. Source: https://hopi.co.uk/fraction-to-decimal/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'toDecimal' from a fraction, or 'toFraction' from a decimal
decimalNoThe decimal to convert (mode 'toFraction')
numeratorNoNumerator (mode 'toDecimal')
denominatorNoDenominator, not zero (mode 'toDecimal')

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
exactYes
decimalYes
summaryYes
numeratorYes
recurringNo
percentageNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
denominatorYes

TDQS

A4.3/5.0
Behavior4/5

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

With annotations already covering read-only and idempotent behavior, the description adds valuable functional details: approximation behavior (closest simplified fraction), denominator limit of 10,000, and whether results are exact. This is 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.

Conciseness4/5

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

Three sentences front-load the purpose and mode details. The source URL is slightly extraneous but not harmful. Overall, every sentence earns its place.

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

Completeness4/5

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

Given an output schema exists and annotations are rich, the description covers both modes, input constraints, and output characteristics (percentage, exactness). It does not mention error handling or edge cases, but that is adequately handled by the schema.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaningful constraints beyond the schema: 'whole numbers' for numerator/denominator and the denominator cap of 10,000, plus clarifying the output (decimal and percentage).

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

Purpose5/5

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

The description clearly states the tool converts between fractions and decimals, with explicit mode definitions. It distinguishes itself from siblings like hopi_fraction_calculator by focusing on conversion rather than arithmetic.

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

Usage Guidelines4/5

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

Clear context is provided for each mode ('toDecimal' requires numerator/denominator, 'toFraction' requires decimal). However, no explicit alternatives or when-not-to-use guidance is given relative to sibling tools.

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

hopi_fuel_cost_calculatorFuel cost calculatorA
Read-onlyIdempotent
Inspect

Estimate the fuel cost of a journey from the distance in miles, the car's fuel economy in miles per gallon (UK gallon) and the pump price in pence per litre. Optionally double it for a return trip and split between passengers. Returns total cost, litres used and cost per person. Costs in GBP. Source: https://hopi.co.uk/fuel-cost-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
mpgYesFuel economy in miles per UK gallon
milesYesOne-way distance in miles
peopleNoNumber of people to split the cost between (default 1)
returnTripNoDouble the distance for a return journey (default false)
pencePerLitreYesPump price in pence per litre

Output Schema

ParametersJSON Schema
NameRequiredDescription
mpgNo
milesNo
litresNo
peopleNo
gallonsNo
summaryYes
totalCostNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
costPerPersonNo
pencePerLitreNo

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the annotations' read-only/idempotent hints, the description discloses UK gallon units, pence-per-litre pricing, return-trip doubling, passenger splitting, and the returned fields (total cost, litres used, cost per person). It adds meaningful behavioral context without contradicting annotations.

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

Conciseness5/5

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

Three tight sentences with no wasted words. The core purpose and required inputs are front-loaded, optional behaviors and outputs follow, and the source URL is cleanly appended.

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

Completeness5/5

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

With a complete schema, clear annotations, an output schema, and a description that covers inputs, optional modifiers, outputs, currency, and units, an agent has everything needed to call this tool correctly. The source link adds helpful provenance.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all five parameters and their meanings. The description restates the role of key parameters and adds output information, but does not materially deepen parameter semantics beyond the schema.

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

Purpose5/5

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

The description states a specific verb ('Estimate') and resource ('fuel cost of a journey'), with explicit inputs and outputs. It distinguishes this from the many sibling calculators by naming the exact computation and its optional return-trip and cost-splitting features.

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

Usage Guidelines4/5

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

The description gives clear context: use this when estimating journey fuel cost from miles, mpg, and pence per litre, with optional return trip and passenger splitting. It does not explicitly name alternatives or exclusions, but the usage context is unambiguous.

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

hopi_hash_generatorHash generatorA
Read-onlyIdempotent
Inspect

Compute the SHA-256, SHA-1 or SHA-512 hash of a piece of text and return the hex digest. Uses WebCrypto on Hopi's server. SHA-1 is included for compatibility with older systems only and should not be used for anything new. Source: https://hopi.co.uk/hash-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to hash
algorithmNoHash algorithm (default SHA-256)SHA-256

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexNo
bitsNo
summaryYes
algorithmNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful context by stating that hashing happens using WebCrypto 'on Hopi's server', implying the input text is transmitted to the server, and optionally provides a source link.

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

Conciseness5/5

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

Three short sentences with the core operation front-loaded. The SHA-1 warning and source link add context without adding bloat, and no sentence is redundant.

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

Completeness5/5

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

The output schema covers return value details; annotations cover side-effect safety; and the description covers input, algorithm options, compatibility concerns, and server-side execution. Nothing an agent needs to invoke the tool correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the supported algorithms and explicitly warning that SHA-1 is legacy-only, which helps the agent make a correct algorithm choice.

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

Purpose5/5

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

States a specific action ('Compute') with a clear resource ('hash of a piece of text') and enumerates the exact algorithms and output form ('hex digest'). This clearly differentiates it from siblings such as hopi_hash_identifier, which performs a different task.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when a text hash is needed) but does not name alternative tools or state when not to use it. It does provide useful algorithm-level guidance: SHA-1 is for compatibility only and should not be used for new work.

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

hopi_hash_identifierHash identifierA
Read-onlyIdempotent
Inspect

Identify the most likely algorithms behind a hash string from its length, character set and any prefix. Covers MD5, NTLM, MD4, SHA-1, RIPEMD-160, SHA-224/256/384/512, the SHA3 family, CRC32, bcrypt, Argon2, sha512crypt, sha256crypt and md5crypt, plus Base64 length hints. A hash does not carry its algorithm, so results are ranked best guesses, not proof. Source: https://hopi.co.uk/hash-identifier/

ParametersJSON Schema
NameRequiredDescriptionDefault
hashYesThe hash string to identify

Output Schema

ParametersJSON Schema
NameRequiredDescription
lengthYes
charsetYes
summaryYes
candidatesYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4/5.0
Behavior5/5

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

Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds meaningful behavioral context beyond those: results are ranked best guesses rather than proof, because a hash does not carry its algorithm. It also names the covered algorithm families and a source, which helps set expectations about scope and reliability.

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

Conciseness4/5

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

The description is efficient and front-loaded with the core purpose. The algorithm list is long but useful for scope-setting. The source URL is slightly extraneous but does not bloat the description enough to hurt clarity.

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

Completeness5/5

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

Given a single parameter, strong annotations, and an existing output schema, the description is complete. It explains the input, the heuristics used, the algorithms covered, and the probabilistic nature of the result. Nothing essential for correct invocation is missing.

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

Parameters3/5

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

The schema already documents the single `hash` parameter with 100% coverage. The description adds little beyond restating that the tool inspects the hash string, though the mention of length, character set, and prefix gives some sense of what the tool considers. This meets the baseline for high schema coverage but does not go beyond it.

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

Purpose4/5

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

The description clearly states the tool identifies the most likely algorithms behind a hash string using length, character set, and prefix, which is a specific verb and resource. It is not tautological and the algorithm list adds concreteness. However, it does not explicitly differentiate itself from siblings like hopi_hash_generator or hopi_cipher_identifier, leaving that distinction to the agent.

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

Usage Guidelines3/5

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

The description implies the tool is used when you have a hash string and want to know which algorithm produced it. It gives useful heuristics about what the tool inspects, but it does not state when to use this tool instead of alternatives, nor does it mention exclusions such as passwords needing hashing or ciphertext identification.

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

hopi_heart_rate_zonesHeart rate zone calculatorA
Read-onlyIdempotent
Inspect

Estimate maximum heart rate and five training zones (bpm) from age. Max HR = 220 - age. Method 'max' uses percentages of max HR (50-60, 60-70, 70-80, 80-90, 90-100%). Method 'karvonen' uses heart rate reserve and needs restingHeartRate: zone = (maxHR - resting) x intensity + resting. Source: https://hopi.co.uk/heart-rate-zones/

ParametersJSON Schema
NameRequiredDescriptionDefault
ageYesAge in years
methodNo'max' (percentage of max HR) or 'karvonen' (heart rate reserve). Default 'max'max
restingHeartRateNoResting heart rate in bpm, required for the Karvonen method

Output Schema

ParametersJSON Schema
NameRequiredDescription
ageYes
zonesYes
methodYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
maxHeartRateYes
restingHeartRateYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark the tool read-only and idempotent, and the description adds the exact formulas and intensity ranges used. This makes the calculation behavior fully predictable beyond the structured metadata, with no contradiction.

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

Conciseness5/5

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

Three sentences deliver the purpose, the max-HR formula, both methods, and a source link without wasted words. The main purpose is front-loaded before implementation details.

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

Completeness5/5

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

Combined with a fully described schema, a clarifying output schema, and read-only/idempotent annotations, the description covers everything needed to invoke the tool correctly. Nothing essential is missing.

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

Parameters4/5

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

The schema already documents all three parameters, so the baseline is 3. The description adds value by linking 'restingHeartRate' to the Karvonen formula and by explaining what 'method' and its intensity percentages mean operationally.

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

Purpose5/5

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

The description states a specific verb and resource: 'Estimate maximum heart rate and five training zones (bpm) from age.' It also differentiates the two computation methods, making the tool's scope unmistakable even within a large sibling list of calculators.

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

Usage Guidelines4/5

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

The description gives clear context for choosing between 'max' and 'karvonen', explicitly noting that Karvonen requires restingHeartRate. It does not name sibling alternatives, but none of the nearby calculators appear to be direct heart-rate-zone competitors.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_hex_to_rgbHex to RGB converterA
Read-onlyIdempotent
Inspect

Convert a hex colour code (3, 6 or 8 digits, with or without a leading #) to its RGB and HSL values. Source: https://hopi.co.uk/hex-to-rgb/

ParametersJSON Schema
NameRequiredDescriptionDefault
hexYesHex colour code, e.g. #D7263D or F0C

Output Schema

ParametersJSON Schema
NameRequiredDescription
hslYes
rgbYes
summaryYes
hslStringYes
rgbStringYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful context about accepted hex formats (3/6/8 digits, optional #) and what values are returned, which goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. The source URL is brief and non-intrusive. Every clause contributes to understanding the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter converter with a full output schema, rich annotations, and a clear description, nothing essential is missing. The agent has everything needed to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the pattern and example already documenting the hex parameter. The description restates the accepted formats but does not add meaningful new semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert'), a clear resource ('hex colour code'), and the concrete outputs ('RGB and HSL values'). It is immediately distinguishable from sibling tools like rgb_to_hex and cmyk_to_rgb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and conversion purpose, but the description never explicitly says when to choose this over alternatives like hopi_rgb_to_hex or hopi_hsl_converter. There are no exclusions or alternative routing cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_holiday_entitlement_calculatorHoliday entitlement calculatorA
Read-onlyIdempotent
Inspect

Work out UK statutory paid holiday entitlement from the number of days worked per week, using 5.6 weeks a year capped at the statutory 28 days. Optionally scale to a part-year by the number of months worked. Returns entitlement in days and weeks. Source: https://hopi.co.uk/holiday-entitlement-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
monthsNoMonths of the year worked (1 to 12, default 12)
daysPerWeekYesDays worked per week (1 to 7)

Output Schema

ParametersJSON Schema
NameRequiredDescription
monthsYes
summaryYes
partYearYes
cappedAt28Yes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
daysPerWeekYes
entitlementDaysYes
entitlementWeeksYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint=false. The description adds the statutory cap, the 5.6-week calculation rule, optional scaling, and return units (days/weeks), providing meaningful behavioral context beyond the annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: core purpose front-loaded, optional scaling in the second sentence, output/source in the third. Every sentence is informative and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter calculator with an output schema and non-destructive annotations, the description covers the calculation rule, the statutory cap, optional month scaling, and return units. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description restates the roles of daysPerWeek and months but adds little beyond the schema; the part-year scaling phrasing mirrors the schema's default of 12 months.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('work out'), a precise resource ('UK statutory paid holiday entitlement'), and the calculation basis (5.6 weeks a year capped at 28 days). This clearly differentiates it from sibling tools like hopi_working_days_calculator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (UK statutory holiday calculation) and the optional part-year scaling via months. It does not explicitly name alternatives or exclusion conditions, but no sibling tool directly overlaps in function.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_hourly_to_salaryHourly wage to salary converterA
Read-onlyIdempotent
Inspect

Convert between an hourly pay rate and an annual salary based on hours worked per week (52 weeks a year). Mode 'to_salary' turns an hourly rate into annual, monthly and weekly pay; mode 'to_hourly' turns a salary into an hourly rate. Gross amounts in GBP, before tax. Source: https://hopi.co.uk/hourly-to-salary/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'to_salary' from an hourly rate, or 'to_hourly' from a salary
salaryNoAnnual salary in GBP (required for to_hourly)
hourlyRateNoHourly pay rate in GBP (required for to_salary)
hoursPerWeekYesHours worked per week (greater than 0, up to 168)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
annualNo
weeklyYes
monthlyNo
summaryYes
hourlyRateYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
hoursPerWeekYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful context beyond that: the 52-week assumption, gross-before-tax amounts, and the fact that 'to_salary' resolves to annual, monthly, and weekly pay figures. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences deliver the purpose, both modes, the calculation basis, and the currency/tax context. The most identifying information is front-loaded, and the source URL is a minor but legitimate addition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple conversion tool with read-only annotations, 100% parameter schema coverage, and an existing output schema, the description is complete. An agent can correctly select the tool, choose a mode, and supply the right parameters without missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter already has a meaningful description. The tool description reinforces the mode-parameter pairing and the gross GBP context, but it does not add materially new semantic detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert'), a clear resource (hourly pay rate ↔ annual salary), and explicitly names the two modes and their outputs. It is distinct from the general 'calculator' cohort, though it does not name any specific sibling alternative such as pro_rata_salary_calculator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The mode descriptions make the intended use clear: use 'to_salary' when starting from an hourly rate and 'to_hourly' when starting from a salary. However, there is no explicit when-not-to-use guidance or mention of related salary tools like take_home_pay_calculator or pro_rata_salary_calculator, leaving the agent to infer boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_hours_calculatorHours calculatorA
Read-onlyIdempotent
Inspect

Work out the hours worked between a start time and an end time, minus an optional unpaid break. Times use 24-hour HH:MM format. Handles overnight shifts where the end time is earlier than the start. Returns the worked time as hours and minutes and as decimal hours. Source: https://hopi.co.uk/hours-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnd time in 24-hour HH:MM format, e.g. 17:30
startYesStart time in 24-hour HH:MM format, e.g. 09:00
breakMinutesNoUnpaid break in minutes (default 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
endYes
startYes
workedYes
summaryYes
overnightYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
breakMinutesYes
decimalHoursYes
grossMinutesYes
workedMinutesYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral details: handling overnight shifts, subtracting optional break, and returning both hours/minutes and decimal hours. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences plus a source URL. The opening sentence states purpose, subsequent sentences cover format, overnight behavior, and output. No redundancy, though the source URL adds marginal value for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple 3-param tool with full schema coverage, annotations, and an output schema, the description covers purpose, input format, special edge case, and output format. It omits only minor edge cases like zero duration or break exceeding duration, which are unlikely to harm correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds interpretive value by clarifying that an end time earlier than start indicates an overnight shift, which is not in the schema's parameter descriptions. It also reinforces the optional break meaning, though that's largely redundant with the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('work out') with a clear resource ('hours worked between start and end time') and adds break handling, time format, overnight special case, and output types. This differentiates it from general time calculators like hopi_time_calculator and converters like hopi_minutes_to_hours.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when the tool is used – for calculating worked hours with optional unpaid break and overnight shifts – but does not explicitly name alternatives or exclusions. The context is self-sufficient but lacks direct sibling comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_hsl_converterHSL converterA
Read-onlyIdempotent
Inspect

Convert a hex colour code to hue, saturation and lightness (HSL), or convert HSL values to hex and RGB. Source: https://hopi.co.uk/hsl-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
hNoHue 0 to 360 (for hsl_to_hex)
lNoLightness 0 to 100 (for hsl_to_hex)
sNoSaturation 0 to 100 (for hsl_to_hex)
hexNoHex colour code, e.g. #1FE85C (for hex_to_hsl)
modeYesDirection of conversion

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexYes
hslNo
modeYes
summaryYes
hslStringYes
rgbStringYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which cover the safety profile. The description adds little beyond the source URL and the conversion behavior itself. It does not mention side effects, error handling, or output format, but given the annotations, the baseline expectation is met without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core functionality and includes the source URL. Every word contributes to understanding what the tool does, with no redundant or extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple converter, the description plus rich schema and output schema cover all necessary information. It explains both modes, the input parameters are fully documented in the schema, and the output schema exists, so return values do not need description. No critical information is missing for an agent to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter (h, s, l, hex, mode) having clear descriptions and constraints (ranges, pattern, enum). The tool description adds no additional parameter-specific meaning, but the schema already provides complete semantics. Per the calibration baseline, a 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs and resources: 'Convert a hex colour code to hue, saturation and lightness (HSL), or convert HSL values to hex and RGB.' It clearly distinguishes this tool from sibling converters like hopi_hex_to_rgb and hopi_rgb_to_hex by focusing on HSL conversions and including RGB as an output for HSL input. The purpose is unambiguous and distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it tells the agent when to use the tool, namely for hex-to-HSL or HSL-to-hex/RGB conversions. It does not explicitly mention alternatives or when-not-to-use conditions, but the two-mode description effectively defines the use cases. This is solid context without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_html_escapeHTML escape & unescapeA
Read-onlyIdempotent
Inspect

Escape the five special HTML characters (& < > " ') into entities so text is safe to place in HTML, or unescape named and numeric HTML entities back into plain characters. Source: https://hopi.co.uk/html-escape/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'escape' text to entities, or 'unescape' entities back to text
textYesThe text to escape, or the HTML with entities to unescape

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
inputYes
outputYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered by structured data. The description adds the fact that escaping covers the five special HTML characters and that unescape handles named/numeric entities, which is behaviorally useful. However, it doesn't disclose edge cases like double-encoding behavior, unknown entity handling, or whether output is a string. With annotations covering the safety aspects, a 3 is appropriate: this is the baseline 'adds some value' score, not higher because the description doesn't explain what happens with invalid entities or mixed input.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, no wasted words, and the key operation (escape) is mentioned first. The inclusion of the source URL is borderline, but it's a single short addition and doesn't hurt. The front-loading of the five characters and the purpose ('safe to place in HTML') is effective. It loses one point because the sentence is dense and could be seen as slightly over-explaining, though it remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (2 params, no nested objects, has output schema), and the description covers the operation, the characters involved, and the mode distinction. The output schema exists, so the description doesn't need to explain return values. The only real gap is that it doesn't mention input size limits or invalid input behavior, but for a simple utility like this, those are minor. The source link also hints at documentation for edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters, giving a baseline of 3. The description adds meaning by explicitly telling the agent that 'escape' converts to entities and 'unescape' converts entities back to plain characters, which aligns with the enum semantics. It also clarifies the mode-text relationship ('text to escape' vs 'HTML with entities to unescape'). This is slightly above baseline but not a full 5 because the schema already covers the parameter meanings well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear dual action (escape/unescape), names the exact five special characters, and specifies the safety context. The mode parameter already disambiguates the two operations, but the description's explicit enumeration of the five characters and the purpose ('so text is safe to place in HTML') makes the tool's scope immediately obvious. It is easily distinguished from siblings like hopi_url_encoder or hopi_special_characters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what it does (escape or unescape) and the source URL is included, but there is no explicit 'when to use this vs alternatives' guidance. There are no sibling tools that do HTML escaping in the list, so the absence of explicit alternatives is less damaging, but the description doesn't mention when unescaping would be preferred or any safety caveats. Usage is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_http_status_codesHTTP status code referenceA
Read-onlyIdempotent
Inspect

Look up a standard HTTP status code by number and get its name, meaning and class (1xx to 5xx), or search all standard codes by a word in the number, name or description. Source: https://hopi.co.uk/http-status-codes/

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoAn HTTP status code to look up, for example 404
queryNoA word to search for across code numbers, names and descriptions

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeNo
nameNo
classNo
summaryYes
classNameNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
descriptionNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value by disclosing the source (hopi.co.uk), the output content (name, meaning, class), and the two lookup modes. It does not contradict annotations and provides useful behavioral context beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste. It front-loads the primary function, explains the alternative search mode, and includes a source link. Every sentence earns its place, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a reference lookup tool. It explains both modes, what is returned, and the source. An output schema exists (not shown but indicated), so return value details are not needed. There are no missing prerequisites, side effects, or edge cases that an agent would need to know for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters ('code' and 'query') already documented in detail. The description adds no new semantic information about the parameters themselves—it just restates what the schema says. With high schema coverage, the baseline is 3, and the description does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('look up' / 'search'), the resource (HTTP status codes), and the two distinct modes: by number or by word. It also names what is returned (name, meaning, class), distinguishing it from sibling calculator/converter tools. This is a strong, unambiguous purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly covers usage by describing both modes: if you have a code, look it up; if you have a word, search. It does not explicitly name alternatives or exclusions, but given the tool is unique among siblings (a reference lookup vs. calculators/converters), the context is clear. It could be improved by explicitly stating when to use code vs. query, though the schema already encodes this via anyOf.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_iban_validatorIBAN validatorA
Read-onlyIdempotent
Inspect

Validate an IBAN or generate a test IBAN. Pass 'iban' to check it: the tool normalises it (uppercase, no spaces), confirms the length matches the country's published length, and runs the mod-97 checksum (move the first four characters to the end, map letters to numbers A=10 to Z=35, valid when the number mod 97 is 1). Pass 'country' (a two-letter ISO code) to generate a structurally valid TEST IBAN with a random bank and account portion and correct check digits. Generated IBANs are test values only and are not tied to any real account. All processing is local; nothing is stored. Source: https://hopi.co.uk/iban-validator/

ParametersJSON Schema
NameRequiredDescriptionDefault
ibanNoAn IBAN to validate (spaces and case are ignored)
countryNoA two-letter country code (e.g. GB, DE, FR) to generate a test IBAN for instead of validating

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
validNo
lengthYes
reasonNo
countryYes
summaryYes
normalisedNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
country_codeNo
checksum_passesNo
expected_lengthNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and destructive annotations, the description discloses normalization, country-length checking, the exact mod-97 algorithm, the random generation approach, local-only processing, and no storage. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence front-loads the core purpose, and each following sentence adds necessary operational or trust-related detail. The algorithm is described concisely despite being technical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Both modes are fully described, the validation algorithm is specified, and the output schema exists so return-value details are not needed. The local-processing and source statements round out what an agent needs for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is already solid; the description adds meaningful details such as uppercase/no-spaces normalization, the mod-97 rule, and random bank/account fragments. It does not explicitly state what happens if both iban and country are supplied, which is a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific dual purpose ('Validate an IBAN or generate a test IBAN') and names the exact parameter for each mode. This clearly distinguishes the tool from the large sibling list of converters and calculators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives direct when-to-use instructions: pass 'iban' to check it and pass 'country' to generate a test IBAN, and it warns that generated values are test-only rather than real accounts. That is enough for an agent to select the right mode without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_ics_generatorAdd to calendar file generatorA
Read-onlyIdempotent
Inspect

Build a .ics (iCalendar, RFC 5545) calendar file for a single event and return the file text. Give a title, startDate and endDate as 'YYYY-MM-DD'. For timed events give startTime and endTime as 'HH:MM' (24-hour, read in the caller's local time zone and stored as UTC); set allDay true for an all-day event instead. Location and description are optional. Returns the .ics text ready to save. Source: https://hopi.co.uk/ics-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesEvent title (SUMMARY)
allDayNoTrue for an all-day event (no times). Default false
endDateNoEnd date, ISO 'YYYY-MM-DD'. Defaults to startDate
endTimeNoEnd time 'HH:MM' 24-hour, timed events only. Defaults to startTime
locationNoOptional location
startDateYesStart date, ISO 'YYYY-MM-DD'
startTimeNoStart time 'HH:MM' 24-hour, timed events only. Default '00:00'00:00
descriptionNoOptional description

Output Schema

ParametersJSON Schema
NameRequiredDescription
icsYes
bytesYes
titleYes
allDayYes
summaryYes
filenameYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this tool as read-only, idempotent, and non-destructive. The description adds valuable behavioral detail beyond that: times are interpreted in the caller's local timezone and stored as UTC, allDay changes the event structure, and the result is text ready to save. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the core purpose in the first sentence, then packs essential format and option guidance into a few sentences. The source link is a reasonable addition and does not feel like filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all 8 parameters, explains required formats, optionality, and the timed-vs-all-day distinction. Since an output schema is present, the return format need not be further elaborated. An agent has enough to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameter meanings and defaults. The description adds useful semantics not in the schema, such as the local-timezone-to-UTC conversion and the relationship between startTime/endTime and allDay.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Build') and resource ('a .ics calendar file for a single event') and explicitly says it returns the file text. This clearly distinguishes it from the many unrelated hopi_* calculator/converters in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: how to supply dates, how to distinguish timed events from all-day events via allDay, and which fields are optional. It does not explicitly name excluded alternatives, but no closely related sibling exists, so this is not a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_inflation_calculatorUK inflation calculatorA
Read-onlyIdempotent
Inspect

Adjust a money amount for UK inflation. Mode 'cpi' uses the ONS monthly CPI index (2015 = 100) between two months from January 1988 to August 2026 and returns the adjusted value, total change and average annual rate. Mode 'custom' compounds a chosen annual rate over a number of years. Amounts in GBP. Source: https://hopi.co.uk/inflation-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'cpi' uses the ONS CPI index between two months; 'custom' uses your own rate
yearsNoCustom mode: number of years (0 to 200)
amountYesThe money amount to adjust
toYearNoCPI mode: ending year (default is the latest year)
toMonthNoCPI mode: ending month (1 to 12, default is the latest month)
fromYearNoCPI mode: starting year (1988 to 2026)
fromMonthNoCPI mode: starting month (1 to 12)
ratePercentNoCustom mode: annual inflation rate as a percentage (-50 to 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
yearsNo
amountYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
ratePercentNo
adjustedValueYes
totalChangePercentYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral detail beyond those hints: the CPI mode returns 'the adjusted value, total change and average annual rate', specifies the data source (ONS monthly CPI index), the base year (2015 = 100), the supported date range, and that amounts are in GBP. This gives the agent a clear picture of what the tool does and what it returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a single opening sentence states the core purpose, followed by mode-specific explanations and a source link. No words are wasted, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers both modes, return values, currency, source, and the supported date window. The conditional required fields for each mode are left to the schema, which handles them clearly. One minor gap is that the description says the CPI index is available 'to August 2026', while the schema allows toMonth up to 12 and toYear up to 2026, creating a slight ambiguity; overall the tool remains well-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds useful context about the ONS index and output values, but it does not add substantial per-parameter meaning beyond what the schema provides. A baseline of 3 is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the primary action: 'Adjust a money amount for UK inflation.' It then specifies two distinct modes ('cpi' and 'custom'), what each does, the return values, the currency, and the source. This is a specific verb+resource definition that differentiates it from sibling calculators like compound interest or currency conversion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: it is for UK inflation adjustments, with CPI mode using ONS data and custom mode for a chosen annual rate. It does not explicitly name alternative tools or provide when-not-to-use guidance, but the context is unambiguous enough for an agent to select it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_json_formatterJSON formatterA
Read-onlyIdempotent
Inspect

Pretty print, minify or validate JSON. Formatting and minifying only change whitespace; key order, values and structure stay exactly as they were. Returns the output text or a clear parse error. Source: https://hopi.co.uk/json-formatter/

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesThe JSON text to process
modeNo'format' to pretty print, 'minify' to strip whitespace, 'validate' to only check validity (default format)format
indentNoNumber of spaces per indent level when formatting (default 2)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
validYes
outputYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the guarantee that 'key order, values and structure stay exactly as they were' during formatting/minifying, and the clarification about returning 'output text or a clear parse error' rather than silently failing. This aligns with and enriches the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with the primary function front-loaded in the first sentence. The second sentence adds the preservation guarantee (critical for trust), and the third covers return behavior concisely. The trailing source URL is the only arguably non-operational element, but it sits at the end, out of the way, and provides provenance. No wasted words, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple trio-mode utility, the combination is near-complete: the output schema exists so return values are documented elsewhere, the description still adds the useful error-behavior note, annotations cover the read-only/idempotent profile, and all three parameters are fully documented in the schema. The only marginal gap is the precise output shape of validate mode, but the output schema likely resolves that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already well-documented ('The JSON text to process', the three mode behaviors, and the indent spacing default). The description adds essentially no parameter-level detail beyond the schema, so the baseline of 3 applies. It does reinforce the mode semantics by naming the three operations, but that is redundant with the enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with three specific verbs tied to a clear resource: 'Pretty print, minify or validate JSON.' This precisely defines the tool's scope and differentiates it from sibling JSON tools like hopi_json_to_csv, hopi_json_to_typescript, and hopi_json_yaml_converter, which perform conversions rather than formatting/validation. The three operational modes are also echoed in the enum, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through the mode enumeration ('format' to pretty print, 'minify' to strip whitespace, 'validate' to only check validity), which tells an agent when each variant applies. However, the description does not explicitly name any sibling alternatives or state when NOT to use this tool, such as when a conversion (JSON to CSV/YAML/TypeScript) is actually needed. The guidance is adequate but entirely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_json_to_csvJSON to CSV converterA
Read-onlyIdempotent
Inspect

Convert a JSON array of objects into CSV. The union of all keys becomes the header row in first-seen order, missing keys become empty cells, and nested objects or arrays are written back as compact JSON in the cell. Output follows RFC 4180 quoting. Source: https://hopi.co.uk/json-to-csv/

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesA JSON array of objects to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
csvNo
rowsNo
columnsNo
headersNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive. The description adds rich behavioral context: union of keys as header, first-seen order, empty cells for missing keys, compact JSON for nested values, RFC 4180 quoting, and a source URL. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences that front-load the core purpose, then pack in essential behavioral specifics without fluff. The source URL is relevant and non-intrusive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema, the description covers all critical behaviors: input format, conversion rules, quoting, and even source. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes the single 'json' parameter as 'A JSON array of objects to convert', and the tool description expands on conversion rules (header, missing keys, nested handling). With 100% schema coverage, the baseline is 3, but the description adds meaningful detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific action 'Convert a JSON array of objects into CSV' with precise details on header generation, missing keys, nested objects, and quoting. Clearly distinguishes from sibling tools like hopi_csv_to_json.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys the tool's purpose, so an agent knows when to use it (JSON to CSV conversion). However, it does not explicitly mention when not to use it or name alternative tools, though the sibling list makes the inverse obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_json_to_typescriptJSON to TypeScript converterA
Read-onlyIdempotent
Inspect

Convert a JSON sample into TypeScript interfaces and types. Objects become named interfaces (PascalCase from their key), nested objects get their own interfaces, arrays become element-type arrays with keys merged across all elements (keys missing from some elements are marked optional), and null values are folded into unions such as string | null. Empty arrays become unknown[] and empty objects become Record<string, unknown>. Runs on Hopi's server; nothing is stored. Source: https://hopi.co.uk/json-to-typescript/

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesA JSON sample to convert. It may be an object, an array or a primitive value.
rootNameNoName for the root interface or type alias (default Root).Root

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
typescriptYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and idempotent annotations, the description discloses rich behavioral details: PascalCase interface naming, nested object handling, array key merging with optional keys, null folding into unions, empty array/object fallbacks, and the server-side 'nothing is stored' privacy note. This gives the agent a precise mental model of transformation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the main purpose, followed by necessary edge-case details. Every sentence earns its place, though the array-handling sentence is a bit long. The structure is logical: purpose, behavior rules, server/privacy, source.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema already covers return values, so the description correctly focuses on transformation semantics and server behavior. It covers naming, nested objects, arrays, nulls, empty containers, privacy, and the source URL. Nothing an agent needs to invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (json, rootName) fully documented in the schema. The description adds output transformation context but no additional parameter-specific semantics beyond what the schema already provides, so the baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Convert a JSON sample into TypeScript interfaces and types.' It clearly distinguishes this tool from sibling converters like hopi_json_to_csv and hopi_json_yaml_converter by naming the exact output language and artifact. The detailed transformation rules further reinforce what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is unambiguous: provide a JSON sample and receive TypeScript types. It implicitly separates itself from formatting, YAML, and CSV converters, though it does not explicitly name alternatives or state when not to use it. The clarity of the purpose makes that a minor omission.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_json_yaml_converterJSON to YAML converterA
Read-onlyIdempotent
Inspect

Convert data between JSON and YAML in both directions. JSON to YAML parses with JSON.parse and serialises with js-yaml at two-space indent; YAML to JSON parses with js-yaml and prints with JSON.stringify. Runs on Hopi's server; nothing is stored. Source: https://hopi.co.uk/json-yaml-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoDirection of conversion (default json-to-yaml)json-to-yaml
textYesThe JSON or YAML text to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
outputNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by disclosing implementation details: parsing with JSON.parse, serialising with js-yaml at two-space indent, printing with JSON.stringify, running on Hopi's server, and storing nothing. This gives the agent useful expectations about output formatting and privacy.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose first, then implementation specifics, then privacy and source. Every sentence delivers useful information without repetition or padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter converter with an output schema and safety annotations, the description is complete. It covers what the tool does, how it behaves in each mode, output formatting, server-side execution, privacy, and provenance. No critical operational detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds some context around mode behavior, but it does not substantially expand on the meaning of the text parameter beyond what the schema provides. This aligns with the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('convert') and resource ('data between JSON and YAML') and explicitly covers both directions. This clearly distinguishes it from one-direction sibling converters like hopi_json_to_csv and hopi_json_to_typescript.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the tool's usage context clear: it handles JSON-to-YAML and YAML-to-JSON conversion. It does not explicitly name alternatives or when-not-to-use conditions, but the bidirectional scope and format-specific detail leave little ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_jwt_decoderJWT decoderA
Read-onlyIdempotent
Inspect

Decode a JSON Web Token's header and payload from base64url. The signature is never verified, so a decoded claim proves nothing on its own. Reports the algorithm, the exp, iat and nbf time claims, and whether the token is expired. A leading Bearer prefix and whitespace are handled. Source: https://hopi.co.uk/jwt-decoder/

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesThe JWT to decode, optionally with a leading 'Bearer ' prefix

Output Schema

ParametersJSON Schema
NameRequiredDescription
expNo
iatNo
nbfNo
typeNo
headerNo
statusNo
payloadNo
summaryYes
algorithmNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
statusNoteNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only and idempotent, but the description adds substantial behavioral details: the signature is never verified, it reports algorithm, exp, iat, nbf, and expired status, and it tolerates a leading Bearer prefix and whitespace. These disclosures go well beyond the annotations and do not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three focused sentences with no filler. The primary action and the critical non-verification caveat are front-loaded, followed by output details and input edge-case handling. The trailing source URL is unobtrusive and does not dilute the key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with a full output schema, the description covers everything an agent needs: what the tool does, what it reports, its limitations, and how it handles input variations. There are no significant gaps in understanding how to invoke or interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameter semantics by describing the token with an optional Bearer prefix, so the baseline is 3. The description adds value by clarifying that whitespace is also handled and by framing the input as a JWT header/payload to be decoded. This small but meaningful enrichment justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Decode a JSON Web Token's header and payload from base64url.' It also distinguishes itself from generic utilities by focusing on JWT structure and explicitly noting it does not verify signatures, which separates it from any sibling that might decode base64 or hashes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool—when you need to inspect a JWT's header, payload, or expiry status. It also provides a when-not-to-use caveat: the signature is never verified, so decoded claims prove nothing on their own. No sibling tool covers JWT decoding, so naming an explicit alternative is not applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_kg_to_stoneKg to stone converterA
Read-onlyIdempotent
Inspect

Convert a weight in kilograms to UK stone and pounds. Returns whole stone plus remaining pounds, and the totals in pounds and decimal stone. Source: https://hopi.co.uk/kg-to-stone/

ParametersJSON Schema
NameRequiredDescriptionDefault
kilogramsYesWeight in kilograms

Output Schema

ParametersJSON Schema
NameRequiredDescription
stoneNo
poundsNo
summaryYes
kilogramsNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
totalStoneNo
totalPoundsNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only, idempotent, and non-destructive; the description adds behavior beyond that by specifying that output includes whole stone, remaining pounds, total pounds, and decimal stone. It also cites the source. It does not detail rounding or precision, but for a simple converter this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the conversion action and then specify return structure, followed by a source citation. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only converter with an output schema present, the description covers the conversion direction, output format, and source. An agent has everything needed to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the single parameter ('Weight in kilograms') at 100% coverage. The description restates the input's role but adds no new semantic detail such as precision or accepted range beyond the schema's minimum constraint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description plainly states the conversion action and target units: 'Convert a weight in kilograms to UK stone and pounds.' It also clarifies output composition and the UK-specific unit variant, distinguishing it from the more generic hopi_weight_converter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool's purpose is clear, so when to use it is implied, but the description never mentions alternatives or exclusion conditions. It does not say to prefer hopi_weight_converter or another converter for other unit conversions, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_leap_year_checkerLeap year checkerA
Read-onlyIdempotent
Inspect

Check whether a year is a leap year, applying the divisible-by-4, century, and divisible-by-400 rules. Returns the verdict, the divisibility tests, and the next and previous leap years. Source: https://hopi.co.uk/leap-year-checker/

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesThe year to check (1 to 9999)

Output Schema

ParametersJSON Schema
NameRequiredDescription
yearYes
summaryYes
isLeapYearYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
divisibleBy4Yes
nextLeapYearYes
divisibleBy100Yes
divisibleBy400Yes
previousLeapYearYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds value by disclosing the applied rules and what is returned (verdict, divisibility tests, next/previous leap years), providing 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that front-load the core purpose and then list the return content, followed by a source URL. It is compact, every sentence carries meaningful information, and no redundant details dilute the message.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with an output schema, the description fully covers what the operation does, the rule set applied, and what the result includes. An agent can correctly select and invoke the tool without needing additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single `year` parameter, so the schema already documents it fully. The description mentions 'a year' but adds no extra parameter-level detail; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Check whether a year is a leap year', giving a specific verb and resource, and elaborates with the exact rules (divisible-by-4, century, divisible-by-400). This unambiguously identifies the tool's function among the extensive list of sibling calculators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives are mentioned. Usage is implied by the self-evident purpose ('Check whether a year is a leap year'), but there is no guidance on when not to use it or which sibling tools might be relevant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_length_converterLength converterA
Read-onlyIdempotent
Inspect

Convert a length from one unit to another. Units: mm, cm, m, km, in (inches), ft (feet), yd (yards), mi (miles). Source: https://hopi.co.uk/length-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe length value to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYes
fromYes
valueYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the supported units and a source URL but does not disclose rounding, precision, or edge-case behavior; it does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences: the first is front-loaded with the operation and unit list, the second adds a source. There is no filler or redundant repetition of schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple conversion tool with 100% schema parameter coverage, an output schema, and safety annotations, the description is sufficient. The unit list plus parameter schema gives the agent everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description does not need to explain the parameters exhaustively. It adds value by expanding the abbreviation meanings 'in (inches), ft (feet), yd (yards), mi (miles)', which helps agents map user requests to the enum values correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the specific verb 'Convert' and the resource 'a length from one unit to another', then enumerates the exact supported units. This clearly differentiates it from area, weight, volume, and speed converters in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The supported-unit list gives the agent a clear sense of when the tool applies, but the description does not explicitly state when not to use it or contrast it with specialized siblings like hopi_cm_to_feet or hopi_miles_to_km. The usage context is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_litres_to_pintsLitres to pints converterA
Read-onlyIdempotent
Inspect

Convert between litres and pints. Direction 'litres-to-pints' takes litres and returns UK pints, US pints and millilitres. Direction 'pints-to-litres' takes UK pints and returns litres. Source: https://hopi.co.uk/litres-to-pints/

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe value to convert (litres or UK pints depending on direction)
directionYesWhich way to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
litresYes
summaryYes
ukPintsYes
usPintsNo
directionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
millilitresNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only and idempotent. The description adds valuable behavioral detail: litres-to-pints returns UK pints, US pints, and millilitres, while pints-to-litres only returns litres, revealing an important asymmetry in the tool's output that the schema alone does not show.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the main purpose is stated in the first sentence, followed by concise direction-specific behavior, and a source link. There is no filler or redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only two parameters and an output schema, and the description covers both directions, the expected input unit, and the output units. Nothing needed for correct invocation is missing, especially given the annotations already communicate safety.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers 100% of parameters, and the description goes further by explaining how each direction affects the meaning of `value` and what output units to expect. This adds context beyond the schema's generic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb and resource: 'Convert between litres and pints.' It then specifies both supported directions, making the tool's exact purpose unambiguous and differentiating it from generic unit converters and other hopi converter tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: any conversion between litres and UK/US pints. It does not explicitly name alternatives like hopi_volume_converter, but the precise scope and direction-based behavior make the intended usage evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_loan_calculatorLoan repayment calculatorA
Read-onlyIdempotent
Inspect

Work out the monthly repayment on a loan from the amount borrowed, the annual interest rate and the term in years, using the standard amortising formula. Returns the monthly payment, total repaid and total interest. Amounts in GBP. Source: https://hopi.co.uk/loan-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYesAnnual interest rate (APR) as a percentage (0 to 100)
yearsYesLoan term in years (greater than 0, up to 30)
amountYesAmount borrowed in GBP (greater than zero)

Output Schema

ParametersJSON Schema
NameRequiredDescription
rateYes
yearsYes
amountYes
monthsYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
totalRepaidYes
totalInterestYes
monthlyPaymentYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: it discloses the calculation formula, the exact return values (monthly payment, total repaid, total interest), and the currency (GBP). This goes beyond what annotations provide and gives the agent a clear picture of the operation's scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence front-loads the core purpose and inputs, the second lists outputs, currency, and source. Every word adds value, and the structure is clean and scannable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter calculator with full schema descriptions and an output schema, this description is complete. It covers purpose, methodology, outputs, currency, and provides a source reference. No critical information is missing for an agent to invoke the tool correctly, and the annotations handle safety/idempotency context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter (amount, rate, years) already fully described in the input schema. The description only paraphrases these parameter names without adding new semantic details (e.g., compounding frequency or whether the rate is nominal vs. effective). It does not compensate beyond the schema, but the schema already covers the essentials, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Work out the monthly repayment on a loan' using specific inputs (amount, rate, years) and an identified methodology ('standard amortising formula'). It also names the outputs (monthly payment, total repaid, total interest), distinguishing it from sibling calculators like hopi_mortgage_calculator or hopi_compound_interest_calculator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the description: it is for loan repayment calculations, and the mention of 'amortising formula' gives a hint about its domain. However, there is no explicit guidance on when to use this tool instead of alternatives such as hopi_mortgage_calculator (which might handle similar inputs), nor any exclusions or prerequisites. Context is present but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_lorem_ipsum_generatorLorem ipsum generatorA
Read-onlyIdempotent
Inspect

Generate lorem ipsum placeholder text. Choose whether the count is a number of paragraphs, sentences or words, and how many. Limits are 100 paragraphs, 500 sentences or 2000 words. Source: https://hopi.co.uk/lorem-ipsum-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoWhat the count refers to (default paragraphs)paragraphs
countYesHow many paragraphs, sentences or words to produce

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
countYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully disclosed. The description adds the source URL and reiterates count limits (already in the schema), but does not disclose additional behavioral traits like output format or randomization. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action, followed by concise parameter guidance and a source attribution. Every word contributes; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with a rich schema and an output schema, the description is sufficiently complete for correct invocation. It covers the mode/count relationship and limits, and the schema fills the rest. A brief note on output format could push it higher, but is not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both mode and count documented and conditional maximums in place. The description restates the mode-count relationship and limits without adding substantial new meaning, so it stays at the baseline for well-documented schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Generate lorem ipsum placeholder text,' a specific verb and resource that clearly distinguishes this tool from broader siblings like hopi_dummy_data_generator or hopi_random_word_generator. The mention of paragraph/sentence/word modes further pins down its exact scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided about when to choose this tool over alternatives such as dummy_data_generator or random_word_generator. The usage context is implied by the name and description, but there are no when-not-to-use instructions or sibling references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_lottery_number_generatorLottery number generatorA
Read-onlyIdempotent
Inspect

Generate random lines for a UK lottery game: Lotto (6 numbers from 1 to 59), Thunderball (5 from 1 to 39 plus a Thunderball from 1 to 14) or Set For Life (5 from 1 to 47 plus a Life Ball from 1 to 10). Source: https://hopi.co.uk/lottery-number-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
gameNoWhich game to play (default lotto)lotto
linesNoHow many lines to generate, 1 to 10 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
gameYes
linesYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the source URL and the game-specific number ranges, which is useful context. However, it doesn't disclose whether the output is sorted, whether lines are unique, or the exact output format—though the output schema likely covers that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, information-dense sentence that front-loads the verb and resource, then packs the three game variants and their ranges. The source URL is appended without disrupting readability. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only generator with two optional parameters and a full output schema, the description is nearly complete. It explains what each game entails and the number ranges. The only minor gap is not stating the output format (e.g., array of lines), but the output schema likely covers that, and the tool is simple enough that an agent can infer it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters ('game' and 'lines') with enums, defaults, and ranges. The description adds the game-specific number ranges (e.g., Lotto 6 from 1 to 59), which enriches the 'game' parameter meaning beyond the schema. This is a solid baseline 3 with slight added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate') and resource ('random lines for a UK lottery game'), and enumerates the three supported games with their exact number ranges. This clearly distinguishes it from sibling generators like hopi_euromillions_generator and hopi_random_number_generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when generating UK lottery lines for Lotto, Thunderball, or Set For Life. It doesn't explicitly exclude alternatives like hopi_euromillions_generator, but the game-specific detail makes the intended use obvious. A brief mention of when not to use it (e.g., for EuroMillions) would push this to a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_magic_8_ballMagic 8 ballA
Read-onlyIdempotent
Inspect

Ask the Magic 8 Ball a yes or no question and receive one of its twenty classic answers at random. Returns the answer. Source: https://hopi.co.uk/magic-8-ball/

ParametersJSON Schema
NameRequiredDescriptionDefault
questionNoThe yes or no question to ask (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYes
summaryYes
questionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only and non-destructive behavior, and the description adds the key behavioral trait: the answer is chosen at random from a fixed set of twenty responses. It does not contradict annotations; idempotentHint concerns side effects rather than deterministic output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the essential behavior. 'Returns the answer' is somewhat redundant with the first sentence, and the source URL is ancillary, but neither significantly harms clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-optional-parameter random tool with an output schema and safety annotations, the description is largely complete: it covers randomness, the answer set, and the input type. It does not say what happens if the optional question is omitted, but the schema already indicates it is optional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description fully covers the single optional parameter, so the baseline is 3. The description adds no additional parameter-level meaning beyond repeating that the question is yes/no, which the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Ask'), names the exact resource (Magic 8 Ball), and states the expected behavior: returning one of twenty classic answers at random. This makes it clearly distinct from sibling tools like coin flips or dice rollers without needing to compare schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use context—yes/no questions—which implies when the tool is appropriate. However, it does not explicitly mention alternatives such as hopi_yes_no_wheel or hopi_fortune_cookie, nor does it state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_margin_calculatorMargin & markup calculatorA
Read-onlyIdempotent
Inspect

Work out profit, gross margin and markup from a cost price and a selling price. Margin is profit as a percentage of the selling price; markup is profit as a percentage of the cost. Amounts in GBP. Source: https://hopi.co.uk/margin-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
costYesCost price in GBP
priceYesSelling price in GBP

Output Schema

ParametersJSON Schema
NameRequiredDescription
costNo
priceNo
profitNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
marginPercentNo
markupPercentNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable behavioral context by defining how margin and markup are calculated from the two inputs, which prevents misinterpretation of the outputs. It also fixes the currency to GBP. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely compact: one sentence for purpose, one for definitions, one for currency/source. No filler or repetition of schema fields. It front-loads the core purpose and keeps supporting detail minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter calculator with complete schema descriptions, existing output schema, and annotations covering safety, the description is fully adequate. It provides the calculation definitions and currency context, leaving no ambiguity about what the tool does or what inputs it needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage with descriptions for both cost and price. The description adds meaning beyond the schema by clarifying the role of each parameter: cost is the base for markup, selling price is the base for margin. This relationship is not explicit in the schema, so the description enhances parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Work out') and resource (profit, gross margin, markup), and clearly distinguishes it from the many sibling calculators by naming exactly what it computes and from which inputs. It also disambiguates margin vs markup, which is essential for correct selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the usage scenario: when you have a cost price and a selling price. It doesn't explicitly name alternatives or exclusions, but there is no competing sibling for margin/markup, and the formula definitions effectively tell the agent when it's appropriate. It has clear context without an explicit when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_markdown_previewerMarkdown previewerA
Read-onlyIdempotent
Inspect

Render a small, safe subset of markdown to HTML: headings (# to ###), bold, italic, links (http, https or mailto only), inline code, fenced code blocks, bulleted and numbered lists, and blockquotes. Every character is HTML-escaped first, so raw HTML is shown as text and never executed. Source: https://hopi.co.uk/markdown-previewer/

ParametersJSON Schema
NameRequiredDescriptionDefault
markdownYesThe markdown source to render

Output Schema

ParametersJSON Schema
NameRequiredDescription
htmlNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses the key behavioral constraint: the supported markdown subset, allowed link schemes, and the HTML-escaping guarantee that raw HTML is never executed. This adds real safety-relevant context beyond the readOnly/idempotent/destructive annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is compact and front-loaded: purpose first, supported subset next, safety behavior after, then a source URL. The URL is of marginal value for tool invocation but does not obscure the essential guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single string parameter, full schema coverage, a provided output schema, and complete safety annotations, the description covers everything an agent needs to call the tool correctly. It also handles the edge case of raw HTML input explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning by listing the accepted markdown constructs and restricting link protocols to http, https, and mailto. This tells an agent what input characteristics are honored.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Render ... markdown to HTML') and enumerates exactly which markdown constructs are supported. It clearly distinguishes this tool from text-utility siblings like hopi_html_escape by framing it as a previewer rather than an encoder/decoder.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is clear from the purpose, but the description never states when to choose this over alternatives or when it would be inappropriate (e.g., full CommonMark rendering). Usage guidance remains implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_market_cap_calculatorMarket cap calculatorA
Read-onlyIdempotent
Inspect

Calculate a coin's market cap (price times circulating supply) and fully diluted valuation, or work backwards to the price implied by a target market cap. Works in any currency; nothing is looked up. Source: https://hopi.co.uk/market-cap-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesmarket_cap: price times supply. implied_price: target cap divided by supply.
priceNoCurrent price per coin (for market_cap)
supplyYesCirculating supply (for both modes)
targetNoTarget market cap (for implied_price)
currentNoCurrent price per coin, to show the multiple (optional, implied_price mode)
maxSupplyNoMaximum or total supply for FDV (optional, market_cap mode)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
approxNo
summaryYes
marketCapNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
marketCapStringNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotentHint annotations, the description adds valuable behavioral context: 'nothing is looked up' and 'works in any currency'. This clarifies that no external data is fetched and currency units are irrelevant, which annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences deliver the purpose, modes, formulas, currency flexibility, and no-lookup behavior, with a source link at the end. Every element earns its place and the key formulas are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 100% schema coverage, the annotations, and the presence of an output schema, the description is complete for a simple calculator. It covers both modes, explains the formulas, and sets expectations about not performing live lookups.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents all six parameters, giving a baseline of 3. The description adds formula-level meaning—market cap as price times supply, implied price as target cap divided by supply, and FDV via maxSupply—which goes beyond the schema's individual property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb ('Calculate') and resource ('a coin's market cap'), includes the core formula, and explains the two supported modes: forward calculation and working backwards to implied price. This clearly distinguishes it from sibling calculators like crypto profit or position size.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the usage context clear: it is a pure calculation tool that works in any currency and performs no lookups. It doesn't explicitly mention alternatives or exclusions, but the context is sufficient for an agent to know when this tool fits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_meta_tag_generatorMeta tag generatorA
Read-onlyIdempotent
Inspect

Build a complete HTML head snippet from page details: title, meta description, canonical link, Open Graph and Twitter card tags. Returns the ready-to-paste snippet plus character counts. Source: https://hopi.co.uk/meta-tag-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoPage title (guideline is around 60 characters)
ogTypeNoOpen Graph type (default 'website')website
ogImageNoOpen Graph image URL
ogTitleNoOpen Graph title (defaults to title if omitted)
canonicalNoCanonical URL for the page
descriptionNoMeta description (guideline is around 155 characters)
twitterCardNoTwitter card type (default 'summary_large_image')summary_large_image
ogDescriptionNoOpen Graph description (defaults to description if omitted)

Output Schema

ParametersJSON Schema
NameRequiredDescription
htmlNo
linesNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
titleLengthNo
descriptionLengthNo
titleOverGuidelineNo
descriptionOverGuidelineNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds meaningful behavior beyond that: it returns a ready-to-paste snippet plus character counts, and it references the source of the tool. No contradictions or hidden effects are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The main action and output are front-loaded, and the source URL is appended compactly at the end. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose and return value, and the schema fully documents all eight optional parameters. With annotations and an output schema present, an agent has enough context to call it correctly. A small gap is that the description doesn't emphasize that all parameters are optional, but the schema already communicates that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with detailed per-parameter descriptions including defaults, guidelines, and enums. The description adds only a high-level grouping of parameter types ('title, meta description, canonical link, Open Graph and Twitter card tags') without introducing new parameter meaning, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Build a complete HTML head snippet from page details' and lists covered tags (title, meta description, canonical, Open Graph, Twitter card). This clearly differentiates it from other generator siblings like schema_markup_generator or robots_txt_generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when creating an HTML head/meta tag snippet, and the output details clarify what the caller gets. However, it does not explicitly mention when not to use it or name alternatives, even though similar sibling generators exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_miles_to_kmMiles to km converterA
Read-onlyIdempotent
Inspect

Convert between miles and kilometres. Direction 'miles-to-km' takes miles and returns kilometres. Direction 'km-to-miles' takes kilometres and returns miles. Source: https://hopi.co.uk/miles-to-km/

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe distance value to convert
directionYesWhich way to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
kmYes
milesYes
summaryYes
directionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is well covered. The description adds the direction-specific behavior and a source URL, but little else beyond what the annotations and schema already communicate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core behavior. The first sentence is slightly redundant with the title, and the source URL is extra, but overall the structure is efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter converter, the description plus the fully documented input schema and output schema provide everything an agent needs. No return-format explanation is needed because an output schema is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by explaining what each direction does: 'miles-to-km takes miles and returns kilometres' and vice versa. This clarifies expected outputs beyond the schema's bare enum labels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the exact verb and resource: 'Convert between miles and kilometres' and explicitly lists both supported directions, making the tool's scope unambiguous. It is clearly distinguished from other converter siblings by naming the specific units handled.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool by specifying both conversion directions and their input/output relationships. It does not explicitly name alternatives or exclusions, but for a simple unit converter the usage context is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_military_time_converterMilitary time converterA
Read-onlyIdempotent
Inspect

Convert between 24-hour (military) time and 12-hour clock time. Direction '24h-to-12h' takes a 24-hour time like '1430' or '14:30'. Direction '12h-to-24h' takes a 12-hour time like '2:30' with a meridiem of am or pm (the meridiem can also be written in the time string). Source: https://hopi.co.uk/military-time-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYesThe time to convert, e.g. '1430', '14:30', '2:30 pm'
meridiemNoam or pm for 12h-to-24h when not in the time string (default pm)pm
directionYesWhich way to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
time12Yes
time24Yes
summaryYes
meridiemYes
directionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds useful behavioral context by explaining what each direction accepts and giving concrete examples like '1430', '14:30', and '2:30' with a meridiem. It does not discuss edge cases such as invalid input or 2400 handling, but that is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose first, then direction-specific behavior and examples. Every sentence contributes useful information, and the source attribution is a minor, acceptable addition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple converter with an output schema, the description plus parameter schema cover what an agent needs to call the tool correctly. The only slight omission is explicitly stating the default meridiem behavior when none is supplied, though the schema's default of 'pm' covers this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all parameters with 100% coverage, so the baseline is 3. The description adds value by showing example formats for the 'time' parameter and clarifying that the meridiem can be provided either separately or inline in the time string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert') and the exact resource (24-hour military time vs 12-hour clock time), making the tool's purpose immediately clear. It also names the two direction values, which distinguishes it from other converter-style siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: whenever a time needs converting between 24-hour and 12-hour formats. It does not explicitly mention alternative sibling tools or list exclusion cases, so it falls just short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_minutes_to_hoursMinutes to hours converterA
Read-onlyIdempotent
Inspect

Convert a number of minutes into hours and minutes, or convert hours (plus optional extra minutes) into total minutes. Set mode to 'minutesToHours' or 'hoursToMinutes'. Returns a clock-style breakdown and decimal hours. Source: https://hopi.co.uk/minutes-to-hours/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesDirection of the conversion
hoursNoHours to convert (used when mode is 'hoursToMinutes', 0 to 100000)
minutesNoMinutes to convert (used when mode is 'minutesToHours', 0 to 10000000)
extraMinutesNoExtra minutes to add to the hours (used when mode is 'hoursToMinutes', default 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
clockYes
minutesNo
summaryYes
breakdownNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
decimalHoursYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context by stating it returns 'a clock-style breakdown and decimal hours', which is not present in the schema or annotations. It does not mention edge cases or rounding behavior, but for a pure converter this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core action, and every sentence earns its place. It states what it does, how to invoke it, and what the output will be, without unnecessary filler. The source URL is a minor addition but does not bloat the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete enough for a simple two-mode converter: it covers both directions, mentions the optional extra minutes, and hints at the return format. An output schema exists, so return values don't need detailed explanation here. It could mention that for 'hoursToMinutes' the 'hours' and 'extraMinutes' parameters are optional with defaults, but the schema already conveys that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters and their meanings. The description restates the mode values and the role of extra minutes, but it doesn't add significant new meaning beyond what the schema provides. The baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: converting minutes to hours/minutes or hours to total minutes, with two explicit modes. It names the specific resource (minutes/hours) and the verb 'convert', making it easy to understand. However, it does not explicitly differentiate from sibling tools like hopi_hours_calculator or hopi_time_calculator, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool—whenever a minutes-to-hours or hours-to-minutes conversion is needed—by explaining the two modes. It gives direct instructions on setting the 'mode' parameter, but it does not provide explicit guidance on when not to use this tool or how it differs from alternatives. No exclusions or alternative recommendations are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_moon_phase_calculatorMoon phase calculatorA
Read-onlyIdempotent
Inspect

Work out the moon phase for a date, based on the synodic month since a known new moon. Dates use the YYYY-MM-DD format and default to today. Returns the phase name, illuminated percentage, moon age in days, and the next full and new moons. Source: https://hopi.co.uk/moon-phase-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date in YYYY-MM-DD format (defaults to today)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
phaseNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
moonAgeDaysNo
nextNewMoonNo
nextFullMoonNo
illuminationPercentNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable context beyond that: the synodic-month basis, date format and default, and the specific outputs returned (phase name, illuminated percentage, moon age, next full/new moons).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose, input format/default, then returned values. The source URL is a minor extra but does not bloat the definition or obscure the essentials.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only calculator with full input-schema coverage and an output schema, the description supplies the algorithm basis, input expectations, and return content. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the only optional parameter `date`, including format and default. The description merely restates that information, so it adds no new semantic value; the high schema coverage baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Work out the moon phase for a date') and clarifies the calculation basis and output fields. It is clearly distinguishable from the large sibling set, where no other tool computes moon phases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is unambiguous: given a date (defaulting to today) the tool returns moon-phase data. While no explicit alternatives or exclusions are named, none are necessary because no sibling overlaps with this functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_morse_code_translatorMorse code translatorA
Read-onlyIdempotent
Inspect

Translate text into international Morse code, or Morse code back into text. Letters are separated by spaces and words by a forward slash. When decoding, underscores are treated as dashes and pipes as word separators. Unknown Morse sequences appear as # in the output. Source: https://hopi.co.uk/morse-code-translator/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text or Morse code to translate
directionNo't2m' text to Morse (default), 'm2t' Morse to textt2m

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
summaryYes
unknownYes
directionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only and idempotent annotations, the description discloses important behavioral details: letters separated by spaces, words by forward slashes, underscores treated as dashes when decoding, pipes as word separators, and unknown Morse sequences rendered as '#'. This gives the agent concrete expectations about input normalization and output formatting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the core purpose appears first, followed by three high-value formatting details and a source link. Every sentence contributes operational information, with no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deterministic two-parameter converter, the description covers the essential behavior: direction, separators, decoding aliases, and unknown-symbol handling. The annotations already convey safety and idempotence, and the presence of an output schema means return-value documentation is not required here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both 'text' and 'direction' already documented. The description adds semantic value by explaining Morse input/output conventions, such as separator characters and alias handling, which go beyond the schema's generic 'text or Morse code to translate' phrasing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Translate text into international Morse code, or Morse code back into text.' It names the exact conversion domain and bidirectional behavior, making the tool's purpose immediately obvious and distinct from sibling text-manipulation and encoding tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the two use cases: text-to-Morse and Morse-to-text. It does not explicitly name alternatives or state when not to use the tool, but the specificity of 'international Morse code' and the bidirectional wording provide enough context to select this tool correctly among many sibling converters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_mortgage_calculatorMortgage repayment calculatorA
Read-onlyIdempotent
Inspect

Work out the monthly payment on a repayment mortgage at a constant interest rate, using the standard amortising formula. Returns the monthly payment, total repaid and total interest. Fees and rate changes are not included. Amounts in GBP. Source: https://hopi.co.uk/mortgage-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYesAnnual interest rate as a percentage (0 to 50)
yearsYesMortgage term in years (greater than 0, up to 50)
amountYesAmount borrowed in GBP (greater than zero)

Output Schema

ParametersJSON Schema
NameRequiredDescription
rateNo
yearsNo
amountNo
monthsNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
totalRepaidNo
totalInterestNo
monthlyPaymentNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description discloses what the tool returns and explicitly excludes fees and rate changes. This adds valuable functional context without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: it front-loads the core purpose, then lists outputs, exclusions, and currency. Every sentence contributes information, with no unnecessary verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and the tool is a simple read-only calculator, the description sufficiently explains inputs, outputs, and limitations. It does not discuss edge cases like zero interest rates, but these are minor and easily inferred from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters with descriptions, units, and constraints (100% coverage). The description adds no parameter-specific details beyond the schema, so it meets the baseline of 3 without exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it works out the monthly payment on a repayment mortgage at a constant interest rate, and it lists the returned values. It does not explicitly name a sibling tool, but the exclusions (fees, rate changes) provide implicit differentiation from broader calculators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear when-not condition by stating 'Fees and rate changes are not included,' which helps an agent avoid using this tool for variable-rate or fee-inclusive mortgages. However, it does not name alternative tools, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_mortgage_overpayment_calculatorMortgage overpayment calculatorA
Read-onlyIdempotent
Inspect

See how much time and interest a regular monthly overpayment saves on a repayment mortgage. Give the current balance, annual rate, remaining term in years and the extra amount paid each month. Returns the time saved, interest saved, new payoff time and the monthly payment. Amounts in GBP. Source: https://hopi.co.uk/mortgage-overpayment-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYesAnnual interest rate as a percentage (0 to 50)
extraYesExtra monthly overpayment in GBP (0 or more)
yearsYesRemaining term in years (greater than 0, up to 50)
balanceYesCurrent mortgage balance in GBP (greater than zero)

Output Schema

ParametersJSON Schema
NameRequiredDescription
rateNo
extraNo
yearsNo
balanceNo
summaryYes
timeSavedNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
monthsSavedNo
interestSavedNo
monthlyPaymentNo
newPayoffMonthsNo
overpaymentPaymentNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, and non-destructive behavior, so the description does not need to repeat safety details. It adds useful context by stating the input scenario, the outputs ('time saved, interest saved, new payoff time and the monthly payment'), the GBP currency, and a source link. No hidden or surprising behavior is left undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. It front-loads the tool's purpose, then lists inputs, outputs, currency, and source. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 100% schema coverage, the output schema, and the simple calculator nature of the tool, the description is complete. It tells an agent what inputs to provide, what outputs to expect, the currency, and even a source for verification. Nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters. The description restates the inputs in natural language ('current balance, annual rate, remaining term in years and the extra amount paid each month') but adds little semantic detail beyond what the schema already provides. This meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('see how much time and interest a regular monthly overpayment saves'), a specific resource ('a repayment mortgage'), and clearly distinguishes this tool from siblings like hopi_mortgage_calculator by restricting the scenario to overpayments. An agent can tell exactly what this tool does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for repayment mortgages with a regular monthly overpayment. It implicitly distinguishes itself from plain mortgage calculators, though it does not explicitly name alternatives or state when not to use it. This is clear enough for selection but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_mpg_converterMPG converterA
Read-onlyIdempotent
Inspect

Convert fuel economy between UK miles per gallon and litres per 100 km. Direction 'mpg-to-l100' takes UK mpg. Direction 'l100-to-mpg' takes litres per 100 km. Also returns US mpg, km per litre and miles per litre. Source: https://hopi.co.uk/mpg-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe fuel economy value (UK mpg or L/100km depending on direction)
directionYesWhich way to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
ukMpgYes
usMpgYes
summaryYes
directionYes
kmPerLitreYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
milesPerLitreYes
litresPer100kmYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context by disclosing that the tool also returns US mpg, km per litre, and miles per litre beyond the primary conversion, which is value beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the primary purpose, then direction semantics, then a bonus note on additional outputs. Every sentence carries information and there is no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter, read-only conversion tool with full schema coverage and an output schema, the description is complete. It specifies the input units per direction, the additional outputs, and even cites the source, leaving no gap an agent would need to resolve before invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by explicitly mapping each enum value to its input unit ('mpg-to-l100' takes UK mpg, 'l100-to-mpg' takes litres per 100 km), which adds genuine semantic clarity for the direction parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert') and resource ('fuel economy') and precisely defines the two directions and units involved. It is clearly distinguishable from the many other converter tools in the sibling list (e.g., litres_to_pints, speed_converter) by naming UK mpg and l/100km explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the use case clear by explaining exactly which direction takes which unit, so an agent knows when to select this tool. It does not explicitly name alternatives or exclusion conditions, but the niche is so clearly specified that an agent would not confuse it with sibling converters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_national_insurance_calculatorNational Insurance calculatorA
Read-onlyIdempotent
Inspect

Work out UK employee Class 1 National Insurance for the 2026/27 tax year from an annual gross salary. Uses the primary threshold of £12,570, upper earnings limit of £50,270, 8% between them and 2% above. Returns NI due per year, month and week plus the effective rate. Amounts in GBP. Source: https://hopi.co.uk/national-insurance-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
salaryYesAnnual gross salary in GBP

Output Schema

ParametersJSON Schema
NameRequiredDescription
salaryNo
summaryYes
niPerWeekNo
niPerYearNo
niPerMonthNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
effectiveRatePercentNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already marking the operation read-only and idempotent, the description adds substantive behavioral detail: the exact thresholds (£12,570, £50,270), rates (8%, 2%), and the output breakdown (per year/month/week plus effective rate). It does not discuss edge cases like salaries below the threshold or rounding, but the disclosed formula is strong context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the purpose, followed by the calculation specifics and output summary. Every clause adds information, and the source URL is a compact optional addition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple one-parameter calculation with a rich annotation set and an output schema. The description covers purpose, tax year, formula, output granularity, currency, and source, so an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single `salary` parameter as 'Annual gross salary in GBP' (100% coverage). The description echoes 'annual gross salary' and 'Amounts in GBP' but adds no new parameter-level meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Work out UK employee Class 1 National Insurance...' It also specifies the tax year, thresholds, rates, and outputs, which clearly distinguishes it from dozens of sibling calculators such as hopi_take_home_pay_calculator or hopi_net_to_gross.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It identifies the exact scenario—UK employee Class 1 NI for 2026/27 from annual gross salary—so an agent knows when to invoke it. It does not explicitly name alternatives or exclusions, such as other NI classes or other tax years, but the narrow scope leaves little ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_nato_phonetic_alphabetNATO phonetic alphabet translatorA
Read-onlyIdempotent
Inspect

Spell text out using the NATO phonetic alphabet (Alfa, Bravo, Charlie and so on), or convert a phonetic spelling back into plain text. Spaces become (space). When converting back, common variants such as Alpha, Juliet, Xray, Niner and Fife are accepted; unrecognised words appear as #. Source: https://hopi.co.uk/nato-phonetic-alphabet/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text or phonetic spelling to convert
directionNo't2n' text to phonetic (default), 'n2t' phonetic to textt2n

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
summaryYes
unknownYes
directionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior. The description goes further by disclosing concrete output behavior: spaces become '(space)', common spelling variants like Alpha and Niner are accepted, and unrecognised words appear as '#'. This is valuable operational detail beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences cover purpose, edge-case behavior, and source. Core functionality is front-loaded, and every sentence contributes meaningful information without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter translation tool with a rich schema, output schema, and safety annotations, the description covers both conversion directions, formatting quirks, accepted variants, and failure behavior. Nothing essential is missing for an agent to invoke and understand the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters with 100% coverage, including the 'direction' enum and default. The description adds context about accepted variants when converting n2t, but does not significantly extend parameter semantics beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Spell text out using the NATO phonetic alphabet' or 'convert a phonetic spelling back into plain text.' It makes the bidirectional nature of the tool immediately clear and distinguishes it from unrelated translator siblings like morse or cipher tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear usage context: use it for NATO phonetic spelling conversion in either direction, guided by the 'direction' parameter. It does not explicitly name alternatives or exclusion conditions, but the tool's purpose is specific enough that an agent can infer when to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_net_to_grossNet to gross salary calculatorA
Read-onlyIdempotent
Inspect

Work out the gross salary needed to achieve a desired take-home (net) pay for the 2026/27 tax year in England, Wales and Northern Ireland, using code 1257L income tax bands with personal allowance taper and employee National Insurance. Give the net figure as yearly or monthly. Returns the required gross, tax and NI. Amounts in GBP. Source: https://hopi.co.uk/net-to-gross/

ParametersJSON Schema
NameRequiredDescriptionDefault
netYesDesired take-home pay in GBP
periodNoWhether the net figure is yearly or monthly (default year)year

Output Schema

ParametersJSON Schema
NameRequiredDescription
netYes
periodYes
summaryYes
incomeTaxYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
grossPerYearYes
grossPerMonthYes
netCheckPerYearYes
nationalInsuranceYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds value by explaining the calculation contents (personal allowance taper, employee NI) and the return values (gross, tax, NI). It does not mention edge cases or rate limits, but as a stateless 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the core purpose, then adds specific constraints and outputs. The source URL at the end is extra but unobtrusive. No filler or redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the two-parameter schema and presence of an output schema, the description sufficiently explains the tool's behavior, scope, and return values. It could mention that it excludes Scotland or student loans, but those are not required for correctness; the description is complete for typical usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers both parameters fully (net, period with enum and default). The description adds only marginal context by mentioning 'yearly or monthly' and 'Amounts in GBP', the latter is not in the schema. With 100% coverage, baseline 3 is appropriate; the description doesn't need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('work out the gross salary needed') and resource ('achieving a desired take-home (net) pay'), and narrows scope with tax year, location, and tax code. This clearly distinguishes it from sibling calculators like take_home_pay, which do the reverse (gross to net).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context—2026/27 tax year, England/Wales/NI, code 1257L, and monthly/yearly input—which tells the agent when this tool applies. However, it does not explicitly mention alternatives or when not to use it, though the scope excludes Scotland and other tax years by implication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_number_base_converterNumber base converterA
Read-onlyIdempotent
Inspect

Convert a whole number from one base to another between binary, octal, decimal and hexadecimal. Uses BigInt so values of any size convert exactly. Returns the value in the requested base plus all four bases. Source: https://hopi.co.uk/number-base-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe number to convert, as text (optional 0b/0o/0x prefix, spaces and underscores ignored, may be negative)
toBaseYesThe base to convert to
fromBaseYesThe base the value is written in

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexYes
octalYes
valueYes
binaryYes
resultYes
toBaseYes
decimalYes
summaryYes
fromBaseYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral details beyond that: it uses BigInt for exact conversion of arbitrarily large numbers)Skip, and it returns the value in the requested base plus all four bases. These go beyond the safety profile and help the agent anticipate output shape and precision.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences plus a source link. Each sentence earns its place: purpose, BigInt exactness, return format. The source link is a useful reference. There is no fluff or redundant repetition of schema data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with full schema documentation, an output schema, and safety annotations, this description is complete. It covers purpose, precision, output, and source. Nothing essential an agent needs to select or call the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter semantics are already fully documented in the schema. The description adds no additional parameter-level meaning beyond what is already provided (e.g., it does not clarify prefixes, negatives, or base names further). With full schema coverage, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert'), a resource ('a whole number'), and a precise scope ('from one base to another between binary, octal, decimal and hexadecimal'). It also explains the return behavior ('plus all four bases'), making it fully distinguishable from other converter tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly limits usage to whole numbers and to the four named bases, providing clear context for when to use this tool. It does not explicitly name alternatives or exclusion conditions relative to other converter tools, but the scope is specific enough that an agent can infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_number_to_wordsNumber to words converterA
Read-onlyIdempotent
Inspect

Convert a number into written English words. Set currency to true to write it as UK pounds and pence (cheque style, ending 'only'). Supports up to 999,999,999,999 with decimals to two places. Source: https://hopi.co.uk/number-to-words/

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe number to spell out, e.g. '1234.5' or '19.99'. May include commas.
currencyNoWrite as UK pounds and pence (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
wordsYes
summaryYes
currencyYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral details beyond the annotations: it specifies the maximum supported value (999,999,999,999), decimal precision (two places), and the 'only' suffix in currency mode. Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description's additional range and format constraints provide good transparency 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences with the core action front-loaded, followed by the currency caveat and range limit. It is efficient and free of fluff, though the source URL is extra context that, while useful, is not strictly necessary for invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Combined with the input schema, which documents the value format and commas, and the presence of an output schema, the description gives enough information for an agent to call the tool correctly. It covers the key constraints (range, decimals, currency behavior), though it does not describe error cases for out-of-range or invalid inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds value beyond the schema by clarifying that currency mode produces cheque-style output ending with 'only' and stating the range and decimal precision for the value parameter. This enriches meaning beyond the bare boolean description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool converts a number into written English words, a specific verb+resource combination. It further distinguishes itself with the currency option producing UK pounds and pence in cheque style, which separates it clearly from the many sibling converter tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to enable currency mode ('Set currency to true to write it as UK pounds and pence'), which is actionable guidance. It does not mention alternatives or exclusions, but no direct sibling alternative occupies this exact niche, so the context provided is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_oven_temperature_converterOven temperature converterA
Read-onlyIdempotent
Inspect

Convert an oven temperature. Scale 'c' is conventional Celsius, 'fan' is fan/convection Celsius, 'f' is Fahrenheit, 'gas' is UK gas mark (1 to 9). Returns conventional Celsius, fan Celsius, Fahrenheit and the nearest gas mark. Source: https://hopi.co.uk/oven-temperature-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleYesThe scale of the input value
valueYesThe temperature value (or gas mark 1 to 9 when scale is 'gas')

Output Schema

ParametersJSON Schema
NameRequiredDescription
scaleYes
celsiusYes
gasMarkYes
summaryYes
fahrenheitYes
fanCelsiusYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds behavioral value beyond annotations by explaining that 'fan' means fan/convection Celsius and that the output includes the nearest gas mark rather than a precise gas-mark equivalent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences with the main action front-loaded and no redundant restatement of the title or schema. Every sentence adds useful information, and the source URL is a minor but harmless addition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, read-only converter with full schema coverage and an output schema, the description is complete: it defines the input scales, clarifies ambiguous abbreviations, and lists the return values. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description meaningfully expands on the schema by decoding each scale enum value: 'c' is conventional Celsius, 'fan' is fan/convection, 'f' is Fahrenheit, and 'gas' is a UK gas mark. It also reinforces the 1–9 gas-mark constraint from the schema's conditional rule.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Convert an oven temperature,' which immediately distinguishes this from the many generic converter tools in the sibling list. It then names the four accepted scales and the four return values, so an agent knows exactly what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The oven-temperature context is implied by the first sentence, and the scale definitions make the intended use fairly clear. However, the description never explicitly states when to choose this over simpler alternatives such as hopi_celsius_to_fahrenheit, nor does it provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_overtime_pay_calculatorOvertime pay calculatorA
Read-onlyIdempotent
Inspect

Work out gross overtime pay from a base hourly rate and hours worked at three multipliers: standard (1x), time and a half (1.5x) and double time (2x). At least one hours figure is required. Returns pay at each rate, the total and total hours. Gross pay in GBP, before tax and NI. Source: https://hopi.co.uk/overtime-pay-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYesBase hourly rate in GBP
doubleHoursNoHours paid at double time, 2x (default 0)
standardHoursNoHours paid at the standard rate (default 0)
timeAndHalfHoursNoHours paid at time and a half, 1.5x (default 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
rateNo
summaryYes
totalPayNo
doublePayNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
totalHoursNo
doubleHoursNo
standardPayNo
standardHoursNo
timeAndHalfPayNo
timeAndHalfHoursNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this as a read-only, idempotent, non-destructive calculator. The description adds meaningful behavior beyond annotations: it requires at least one hours input, returns pay at each rate plus total and hours, and specifies GBP pre-tax/NI output. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is five short sentences, with the purpose and inputs front-loaded. Every sentence adds useful information: what it computes, the input requirement, what it returns, the currency/tax context, and a source link. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple calculator with a complete input schema, a read-only annotation, and an output schema, the description is fully sufficient. It covers the input constraint, output summary, currency, tax treatment, and provides a source. An agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well documented. The description adds value by clarifying that at least one hours figure must be provided despite schema defaults of 0, and by linking the three multipliers to the rate categories. This goes beyond the schema's required-field definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Work out gross overtime pay') and details the three multipliers, making the tool's function unmistakable. It also differentiates itself from sibling pay calculators by stating 'Gross pay in GBP, before tax and NI'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for gross overtime pay before tax/NI, and it states a key prerequisite ('At least one hours figure is required'). It does not explicitly name alternative tools or say 'use X instead', but the scope is well-defined enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_password_strength_checkerPassword strength checkerA
Read-onlyIdempotent
Inspect

Estimate how strong a password is: an entropy estimate in bits, a rough offline crack time (assuming ten billion guesses a second), a 0 to 4 score with a verdict, and warnings about weak patterns such as dictionary words, sequences and repeats. Source: https://hopi.co.uk/password-strength-checker/

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesThe password to assess (never uploaded; assessed locally)

Output Schema

ParametersJSON Schema
NameRequiredDescription
bitsYes
tipsYes
labelYes
scoreYes
summaryYes
verdictYes
crackTimeYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds useful context beyond that: the crack-time model assumption (ten billion guesses per second) and the type of weakness analysis performed. The 'never uploaded; assessed locally' guarantee in the parameter description further discloses privacy-relevant behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no filler. The purpose and output details are front-loaded, and the source link is appended without disrupting the useful content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema and read-only annotations, the description is complete: it states what the tool does, what outputs to expect, the underlying assumption, and a reference source. Nothing necessary for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single parameter is already documented in the schema. The main description does not add meaning about the input beyond what the schema's parameter description already provides, landing at the high-coverage baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Estimate how strong a password is') and enumerates the concrete outputs: entropy bits, crack time, 0-4 score with verdict, and weak-pattern warnings. This makes the tool's function unambiguous and sets it apart from siblings like hash_generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: this tool is for assessing password strength, and the described outputs make the use case obvious. It does not explicitly name alternatives or exclusion criteria, but no sibling tool competes for the same job, so the omission is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_percentage_calculatorPercentage calculatorA
Read-onlyIdempotent
Inspect

Work out percentages three ways. Mode 'of': what is P percent of a number. Mode 'what': what percentage the part is of the whole. Mode 'change': the percentage change from a starting value to an end value. Source: https://hopi.co.uk/percentage-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd value (mode 'change')
fromNoStarting value (mode 'change', not zero)
modeYes'of' percent of a number, 'what' one number as a percentage of another, or 'change' percentage change
partNoThe part (mode 'what')
wholeNoThe whole (mode 'what', not zero)
numberNoThe number (mode 'of')
percentNoThe percentage (mode 'of')

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
numberNo
resultYes
percentNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context beyond the mode semantics; it does not mention output format or any edge-case behavior, but the output schema exists to fill that gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the core purpose and then clearly enumerates the three modes. The source URL adds provenance without clutter. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema and the fully described input schema, the description is complete enough for correct invocation. The only notable gap is the lack of a pointer to sibling specialized percentage tools, which could help with tool selection, but this does not prevent correct use of this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage with descriptive property entries and conditional requirements. The description essentially restates each mode's semantics ('what is P percent of a number', 'what percentage the part is of the whole'), which is helpful but does not add significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Work out percentages three ways' and enumerates each mode with a concise definition. It identifies the resource (percentage calculator) and the specific operation, though it does not explicitly differentiate itself from the many sibling percentage-related calculators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the mode definitions: choose 'of', 'what', or 'change' based on the type of percentage calculation needed. However, there is no explicit guidance about when to prefer this general tool over specialized siblings like hopi_percentage_change_calculator or hopi_percentage_increase_calculator.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_percentage_change_calculatorPercentage change calculatorA
Read-onlyIdempotent
Inspect

Work out the percentage change from a starting value to an end value, using the starting value as the base. A positive result is an increase, a negative result is a decrease. Source: https://hopi.co.uk/percentage-change-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesThe end value
fromYesThe starting value (not zero)

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
fromNo
changeNo
summaryYes
directionNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
absoluteChangeNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful context beyond annotations: it clarifies that the starting value is the base and explains the sign interpretation (positive = increase, negative = decrease). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with the core purpose front-loaded, followed by a sign-interpretation note and a source reference. Every sentence contributes value; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with full schema coverage, annotations covering safety, and an output schema present, the description is complete. It explains the formula base, result interpretation, and even provides a source link. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters ('starting value (not zero)' and 'end value'). The description enhances these by explicitly stating that the starting value is the base of the calculation, which is not obvious from the parameter names alone. This adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('work out') and resource ('percentage change from a starting value to an end value'), and specifies that the starting value is the base. This distinguishes it from sibling tools like hopi_percentage_increase_calculator or hopi_percentage_difference_calculator, even without explicit naming.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its many percentage-related siblings (increase, decrease, difference, etc.). The agent must infer from the description alone, which does not explicitly state exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_percentage_decrease_calculatorPercentage decrease calculatorA
Read-onlyIdempotent
Inspect

Decrease a number by a percentage and see the new value and the amount taken off. For example, 250 decreased by 15 percent. Source: https://hopi.co.uk/percentage-decrease-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesThe starting number
percentYesThe percentage to take off

Output Schema

ParametersJSON Schema
NameRequiredDescription
numberNo
resultNo
percentNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
amountTakenOffNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds value by disclosing that the tool returns both the new value and the amount taken off, plus a concrete example that clarifies expected behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core statement is compact and front-loaded, and the example clarifies usage. The source URL is somewhat extraneous but does not significantly hurt the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter calculator with strong annotations and an output schema present, the description covers what the tool does, what it returns, and how the parameters relate. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with 'number' documented as 'The starting number' and 'percent' as 'The percentage to take off'. The description adds only an illustrative example, not deeper parameter semantics, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('decrease'), names the resource ('a number by a percentage'), and states the outputs ('new value and the amount taken off'). This clearly distinguishes it from sibling tools like percentage_increase_calculator and percentage_change_calculator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when this tool is appropriate: when a number needs to be decreased by a percentage, with a concrete example. It does not explicitly mention alternatives or exclusions, but the operation is unambiguous enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_percentage_difference_calculatorPercentage difference calculatorA
Read-onlyIdempotent
Inspect

Work out the percentage difference between two values using the average-based formula: the absolute gap divided by the average of the two, times 100. The result is symmetric, so the order of the two values does not matter. Source: https://hopi.co.uk/percentage-difference-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesThe first value
bYesThe second value

Output Schema

ParametersJSON Schema
NameRequiredDescription
aNo
bNo
gapNo
averageNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
percentageDifferenceNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond that: the average-based formula, absolute gap, multiplication by 100, and symmetric/order-independent result. No annotation contradiction is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences are front-loaded with the action and formula, with symmetry and source following. There is no filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-number pure calculator with full schema coverage, an output schema, and safety annotations, the description is complete. It explains the mathematical behavior, symmetry, and source, leaving no practical gap for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes both parameters as 'first value' and 'second value', giving a strong baseline. The description adds operational meaning by explaining exactly how a and b are combined in the formula, though it introduces no additional constraints or formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('work out the percentage difference') and resource (two values), then pins down the exact formula and symmetry property. This clearly distinguishes it from sibling percentage_change/increase/decrease calculators even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It does not explicitly name alternative percentage tools or state when not to use this one, but the formula and the statement that 'order of the two values does not matter' imply use for symmetric comparisons. This is clear context but lacks an explicit exclusion or alternative pointer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_percentage_increase_calculatorPercentage increase calculatorA
Read-onlyIdempotent
Inspect

Increase a number by a percentage and see the new value and the amount added. For example, 250 increased by 15 percent. Source: https://hopi.co.uk/percentage-increase-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesThe starting number
percentYesThe percentage to add on

Output Schema

ParametersJSON Schema
NameRequiredDescription
numberNo
resultNo
percentNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
amountAddedNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating calculation. The description adds that the tool returns both the new value and the amount added, which is useful behavioral context beyond the annotations. However, it doesn't disclose details like rounding behavior, precision, or whether the result is formatted, which could matter for a calculator tool. The description doesn't contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with a clear example and a source URL. It's front-loaded with the core function and example. The source URL is arguably unnecessary for an agent but doesn't detract much. It's appropriately sized for a simple calculator tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter calculator with an output schema and annotations covering safety, the description is largely complete. It explains the operation, provides an example, and notes the two outputs (new value and amount added). The only minor gap is not specifying rounding or formatting behavior, but for a straightforward percentage increase this is unlikely to cause an agent to call it incorrectly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters ('number' and 'percent') already described in the schema. The description adds a concrete example ('250 increased by 15 percent') that clarifies how the parameters map to the operation, but it doesn't add significant new semantic detail beyond the schema. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Increase a number by a percentage and see the new value and the amount added.' This is a specific verb ('increase') with a clear resource (a number by a percentage) and even provides an example. It distinguishes itself from sibling tools like hopi_percentage_decrease_calculator and hopi_percentage_change_calculator by explicitly stating the operation is an increase, though it doesn't name those siblings directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when a user wants to increase a number by a percentage. It doesn't explicitly state when not to use it or name alternatives like hopi_percentage_decrease_calculator or hopi_percentage_change_calculator. The example ('250 increased by 15 percent') provides a clear use case, but the lack of explicit exclusions or alternative routing leaves some ambiguity for an agent choosing among the many percentage-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_position_size_calculatorPosition size calculatorA
Read-onlyIdempotent
Inspect

Work out how large a position to take so that hitting the stop-loss loses only a chosen percentage of the account. Enter account size, risk percentage, entry price and stop-loss price. Returns units to buy, position value, amount at risk and stop distance. Figures are treated as GBP. Source: https://hopi.co.uk/position-size-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
riskYesPercentage of the account to risk on this trade (above 0, up to 100)
stopYesStop-loss price per unit
entryYesEntry price per unit
accountYesTotal account size

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
unitsNo
summaryYes
directionNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
unitsStringNo
amountAtRiskNo
positionValueNo
amountAtRiskStringNo
positionValueStringNo
stopDistancePercentNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as read-only, idempotent, and non-destructive, and the description adds useful behavioral details: it lists the return outputs (units, position value, amount at risk, stop distance) and discloses the GBP currency assumption. This gives the agent a clear picture of what the tool computes and returns beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: first sentence states the purpose, second lists inputs, third lists outputs, and the final one notes currency and source. Every sentence adds relevant information, and there is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple calculator with four fully documented parameters, read-only annotations, and an output schema, the description covers purpose, required inputs, output values, currency assumption, and source. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters with clear meanings. The description restates the inputs in plain language, which is helpful but not additive, and adds the GBP currency context. This meets the baseline without significantly expanding on the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific, outcome-oriented verb ('Work out how large a position to take') and states the exact resource and purpose: position sizing based on stop-loss risk. It is clearly distinguishable from sibling calculators by explaining the risk-based calculation rather than just naming the tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: when you know account size, risk percentage, entry price, and stop-loss price and want to size a position accordingly. It does not explicitly mention alternatives or exclusions, but the described use case is unambiguous enough for an agent to select it over sibling calculators.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_power_converterPower converterA
Read-onlyIdempotent
Inspect

Convert power from one unit to another. Units: w (watts), kw (kilowatts), hp (mechanical horsepower), ps (metric horsepower, PS). Source: https://hopi.co.uk/power-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe power value to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
fromNo
valueNo
resultNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds the source URL and clarifies unit meanings, but it does not disclose any further behavioral details such as rounding or precision, though none are likely needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences with no filler. The action and unit list are front-loaded, and the source line is a useful trust signal without bloating the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simple read-only nature, the complete input schema, output schema presence, and strong annotations, the description provides everything an agent needs to select and call it correctly. No hidden side effects, auth requirements, or edge-case caveats are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters with enumsched and descriptions, so the baseline is 3. The description adds value by expanding abbreviations and clarifying that hp is mechanical horsepower and ps is metric horsepower, which goes beyond the schema's bare enum labels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Convert power') and resource ('from one unit to another'), and explicitly lists the accepted units with abbreviations. This makes it immediately distinguishable from the many sibling converters (length, area, pressure, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the description, but there is no explicit guidance about when to choose this tool over alternatives or edge cases. For a simple converter, the unit list provides enough context, but exclusions are not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_pressure_converterPressure converterA
Read-onlyIdempotent
Inspect

Convert pressure from one unit to another. Units: bar, psi (pounds per square inch), kpa (kilopascals), atm (atmospheres). Source: https://hopi.co.uk/pressure-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe pressure value to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
fromNo
valueNo
resultNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the unit list and a source URL, which are useful but not behavioral disclosures. No contradictions exist, and no additional behavioral context (e.g., rounding, precision, limits) is provided, so a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence stating purpose, a unit list, and a source. No filler words; every element serves a purpose. The essential information is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only conversion tool with a full input schema and an output schema present, the description covers everything an agent needs: what it does, the units, and a source reference. No missing details like rounding behavior or precision are critical for a straightforward conversion, and annotations already handle safety.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter having a description and enums for from/to. The description adds human-readable unit expansions ('pounds per square inch') and the source URL, but these are minor augmentations. Since the schema already documents the parameters, the description adds limited extra meaning beyond clarifying abbreviations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert') and resource ('pressure'), lists the supported units, and is clearly distinguishable from sibling converter tools (e.g., angle, area, speed) by naming 'pressure' explicitly. No ambiguity remains about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context that this is the pressure conversion tool among many converter siblings, but it does not explicitly mention when not to use it or name alternative tools. The presence of many unit converters implies this is the one for pressure, but no explicit 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.

hopi_prime_factorisation_calculatorPrime number & factor calculatorA
Read-onlyIdempotent
Inspect

Check whether a whole number (2 to 1,000,000,000,000,000) is prime, break it into its prime factors in power form, count its divisors, and list them. Uses trial division. Source: https://hopi.co.uk/prime-factorisation-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesA whole number from 2 to 1,000,000,000,000,000

Output Schema

ParametersJSON Schema
NameRequiredDescription
numberYes
isPrimeYes
summaryYes
divisorsYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
divisorCountYes
primeFactorsYes
factorisationYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral detail: it uses trial division curious, outputs prime factors in power form, and lists divisors. This goes beyond the structured fields 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff; the primary function is front-loaded Joseph, and the algorithm and source are appended in one compact sentence. It is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only calculator with an output schema, the description covers the input range, the operations performed, and the output expectations. Nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; the single parameter 'number' is fully described in the schema (integer, 2 to 1e15). The description repeats the same range but adds no new parameter-specific semantics beyond what the schema already documents, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: checking primality, prime factorization in power form, counting divisors, and listing them, for a specific numeric range. This distinguishes it from all sibling tools, which are calculators/converters for other domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (whenever prime-related computations are needed) and spells out the input range. It does not explicitly name alternatives, but among the many siblings none overlaps this functionality, so no exclusion is necessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_product_feed_generatorProduct feed generatorA
Read-onlyIdempotent
Inspect

Turn product rows into a platform-valid product feed: Meta (Facebook and Instagram) RSS 2.0, Google Merchant RSS 2.0, Atom 1.0 or generic RSS 2.0, using the g: namespace where the platform expects it. Each row is validated (required fields, price as 12.99 GBP, availability and condition values, http links, unique ids); rows that fail are skipped and listed. Returns the XML, counts and errors. Source: https://hopi.co.uk/product-feed-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNoShop URL for the feed header (optional, must start with http:// or https://).
rowsYesProduct rows keyed by feed field name. Required per row: id, title, description, availability, condition, price, link, image_link, brand. Optional: sale_price, gtin, mpn, item_group_id, google_product_category, product_type, color, size, gender, age_group, shipping_weight, additional_image_link, quantity_to_sell_on_facebook.
titleNoFeed title. Default Product feed.
currencyNoISO 4217 currency code for prices, for example GBP. Default GBP.
platformNoFeed format. Default meta.
descriptionNoFeed description (optional).

Output Schema

ParametersJSON Schema
NameRequiredDescription
xmlYes
itemsYes
errorsYes
skippedYes
summaryYes
currencyYes
platformYes
rowsReadYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable behavioral detail beyond that: row-level validation rules, skipped-and-listed failures, and return contents (XML, counts, and errors). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: main purpose in the first sentence, validation behavior in the second, return behavior in the third, plus a source link. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers supported formats, platform-specific namespace behavior, validation rules, failure handling, and return values. Combined with a rich input schema and existing output schema, it is complete enough for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers 100% of parameters with descriptions. The description adds extra semantics for row values, such as price format '12.99 GBP', availability and condition validation, http link requirements, and unique id constraints, which go beyond the schema's field-name-level documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: turning product rows into a platform-valid product feed. It enumerates the supported output formats (Meta, Google Merchant, Atom, generic RSS) and mentions the g: namespace, making the tool distinct from the many sibling generators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: when product rows need to be converted into a structured product feed for a specific platform. It does not explicitly name alternatives or exclusions, but no sibling tool serves this purpose, so the usage context is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_pro_rata_salary_calculatorPro-rata salary calculatorA
Read-onlyIdempotent
Inspect

Work out a pro rata salary for part-time hours by scaling a full-time salary by the ratio of your hours to full-time hours. Returns the pro rata yearly, monthly and weekly pay and the fraction of full-time. Amounts in GBP, gross before tax. Source: https://hopi.co.uk/pro-rata-salary-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursYesYour hours per week (greater than zero)
fullTimeHoursYesFull-time hours per week (greater than zero)
fullTimeSalaryYesFull-time annual salary in GBP (greater than zero)

Output Schema

ParametersJSON Schema
NameRequiredDescription
hoursNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
proRataWeekNo
proRataYearNo
proRataMonthNo
fullTimeHoursNo
fullTimeSalaryNo
fractionPercentNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful behavioral context beyond that: it specifies the outputs (yearly, monthly, weekly pay and fraction of full-time), the currency (GBP), and the tax treatment (gross before tax), which are all meaningful operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each earning its place: the first explains the calculation, the second covers return values, units, and source. No filler, no repetition of schema content, and the key scoping information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only calculator, this is complete. All three parameters are documented in the schema, the description explains the output (yearly/monthly/weekly pay and fraction), and it adds currency and tax context. The output schema exists, so the description needn't detail return structure. No material gaps remain for an agent to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining how the parameters relate ('scaling a full-time salary by the ratio of your hours to full-time hours'), which clarifies the roles of fullTimeSalary, fullTimeHours, and hours. It also indicates the output granularity, though it does not restate individual parameter formats since the schema already does that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Work out a pro rata salary for part-time hours by scaling a full-time salary'. It clearly differentiates from related sibling calculators (e.g., hourly_to_salary, day_rate_calculator) by focusing on the pro-rata fraction and the full-time to part-time ratio, leaving no ambiguity about what the tool computes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: when you have a full-time salary and part-time hours. It implies exclusions by noting 'gross before tax', which signals it is not for take-home pay calculations. However, it does not explicitly name alternatives like hopi_take_home_pay_calculator or hopi_hourly_to_salary, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_random_colour_generatorRandom colour generatorA
Read-onlyIdempotent
Inspect

Generate a random colour and return its hex, RGB and HSL values. Each of the red, green and blue channels gets an independent value from 0 to 255. Source: https://hopi.co.uk/random-colour-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexNo
hslNo
rgbNo
summaryYes
hslStringNo
rgbStringNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, non-destructive, and idempotent behaviour. The description adds useful behavioral detail beyond those annotations: each RGB channel is independently drawn from 0 to 255, making the randomness model explicit. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences carry all essential information: the core action and output formats, followed by a precise behavioural detail about channel independence. The source link is non-essential but harmless; there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only utility with an output schema and safety annotations, the description is fully sufficient. It states what the tool returns, how the random values are generated, and leaves no prerequisites, options, or hidden behaviours unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% schema coverage, so there are no parameter semantics for the description to clarify. The baseline for a no-parameter tool is 4, and the description appropriately focuses on the output semantics instead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Generate a random colour') and the exact resource and outputs (hex, RGB, HSL). Among the many colour-related siblings, this unambiguously identifies a standalone random colour generator rather than a palette, shades, or colour-name tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance or named alternatives. However, the zero-parameter signature and clear purpose imply that this tool is for generating a single random colour, so usage is reasonably inferable even without exclusionary language.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_random_coordinatesRandom coordinates generatorA
Read-onlyIdempotent
Inspect

Generate random geographic coordinates that are uniform by surface area across the globe (points are not bunched at the poles). Returns latitude and longitude in decimal degrees. Source: https://hopi.co.uk/random-coordinates/

ParametersJSON Schema
NameRequiredDescriptionDefault
decimalsNoDecimal places for each coordinate, 2 to 6 (default 4)
quantityNoHow many points to generate, 1 to 100 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pointsYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only and non-destructive. The description adds useful behavioral context beyond annotations: the uniform-by-surface-area sampling method, the pole-avoidance property, and decimal-degree output. The source link also provides transparency about the implementation origin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the action, and every sentence adds value: generation behavior, output format, and data source. It avoids filler and redundant restatement of the tool name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero required parameters, full schema coverage, safety annotations, and an output schema, the description provides everything needed: what is generated, how points are distributed, and the coordinate format. There is no meaningful missing context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, and both parameters already have clear descriptions, defaults, and min/max constraints. The tool description adds no significant parameter-level meaning beyond confirming decimal degrees, so the schema carries the semantic burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Generate random geographic coordinates'. It also includes the key differentiator (uniform by surface area, not bunched at poles) and the output format (latitude and longitude in decimal degrees), which clearly separates it from sibling random generators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use obvious: generating random global coordinates. It does not explicitly name alternatives or list exclusions, but the scope is so specific that an agent can reliably select this tool over random_number_generator or random_colour_generator without additional guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_random_letter_generatorRandom letter generatorA
Read-onlyIdempotent
Inspect

Generate random letters from the alphabet, optionally limited to vowels or consonants. Returns the letters as a list. Source: https://hopi.co.uk/random-letter-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
setNoWhich letters to draw from (default any)any
quantityNoHow many letters to generate, 1 to 100 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
setYes
lettersYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description's note that it 'Returns the letters as a list' likely duplicates the existing output schema, adding no novel behavioral context. No additional traits (e.g., randomness source, rate limits) are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the core action. The trailing source URL is not essential for an agent's invocation decision but is not harmful. Overall structure is efficient with no wasteful repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only two optional parameters and an existing output schema, the description covers the essential functionality. It lacks edge-case details (e.g., case sensitivity, duplicate handling), but the low complexity and output schema make the description adequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters clearly documented (set enum with default 'any', quantity integer 1-100 default 1). The description only mentions vowels/consonants, which echoes the schema enum without adding extra meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Generate random letters from the alphabet.' This distinguishes it from sibling tools like hopi_random_word_generator and hopi_random_number_generator. The optional vowel/consonant constraint further clarifies scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the clear phrase 'Generate random letters,' but there is no explicit when-to-use guidance or comparison with alternative random generators. No exclusions or alternatives are named, so the agent must infer usage from the simple description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_random_number_generatorRandom number generatorA
Read-onlyIdempotent
Inspect

Generate one or more random whole numbers within a range (inclusive), optionally with no repeats. Returns the numbers as a list. Source: https://hopi.co.uk/random-number-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
maxYesHighest possible number (inclusive)
minYesLowest possible number (inclusive)
uniqueNoIf true, no number repeats (default false)
quantityNoHow many numbers to generate, 1 to 1000 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
maxYes
minYes
uniqueYes
numbersYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint=true, destructiveHint=false, idempotentHint=true), and the description adds the useful fact that values are random whole numbers with optional uniqueness and a list result. It does not describe edge cases such as unique=true when the requested quantity exceeds the available range, so it is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two substantive sentences communicate core behavior and return shape, and the source URL is a minimal one-line addition. There is no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward generator, the description plus the output schema and annotations cover what an agent needs to invoke it correctly. The only minor gap is guidance around conflicting quantity/unique combinations, and that does not significantly hurt usability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are already documented. The description reiterates inclusivity, whole-number output, and uniqueness, which maps to min/max/unique/quantity but adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Generate one or more random whole numbers within a range', with explicit inclusivity, uniqueness option, and list return. This clearly distinguishes it from sibling random generators such as hopi_random_letter_generator or hopi_dice_roller without needing to inspect their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context for use: any time random integers are needed in a specified range, optionally without repeats. It does not explicitly name alternatives or exclusion conditions, so it falls short of a full 5, but the behavior is specific enough for an agent to select it competently.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_random_team_generatorRandom team generatorA
Read-onlyIdempotent
Inspect

Shuffle a list of names and deal them evenly into a set number of teams. Returns each team's members. Source: https://hopi.co.uk/random-team-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesThe list of names to split into teams
teamsYesHow many teams to make, 2 to 20

Output Schema

ParametersJSON Schema
NameRequiredDescription
teamsNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the safety profile (readOnlyHint=true, destructiveHint=false, idempotentHint=true), lowering the burden on the description. The description adds useful behavior ('evenly' distribution, per-team return), but it does not disclose that shuffling makes results non-deterministic across repeated calls, nor what happens with edge cases like fewer names than teams or uneven remainders. The idempotentHint on a shuffling tool is conceptually strained, though not directly contradicted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences front-load the action and the return value with no wasted phrasing. The trailing source URL is provenance rather than operational guidance, so it is minor noise but not disqualifying.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with fully-documented schema, safety annotations, and an output schema, the description covers the core purpose and return shape sufficiently for correct invocation. The only gaps are behavioral edge cases (odd counts, fewer names than teams) and explicit non-determinism disclosure, which are minor for this level of complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both 'names' and 'teams' are already fully documented with types, ranges, and descriptions. The description's 'list of names' and 'set number of teams' merely echo the schema without adding new constraints such as unique names or a minimum name count relative to the number of teams. Baseline 3 is correct when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with specific verbs ('Shuffle' and 'deal them evenly') naming the resource ('a list of names') and the outcome ('into a set number of teams'). 'Returns each team's members' pins down the exact result shape. This clearly distinguishes it from sibling pickers like wheel_spinner or spin_the_bottle, which select one item rather than grouping names into multiple teams.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied by the description: an agent can infer this is for splitting a list of people into groups. However, there is no explicit when-to-use guidance, no exclusions, and no mention of related alternatives from the large sibling set (e.g., secret_santa_generator, wheel_spinner, random_word_generator). Applicability is left to inference rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_random_word_generatorRandom word generatorA
Read-onlyIdempotent
Inspect

Generate random everyday English nouns, with no repeats. Returns the words as a list. Source: https://hopi.co.uk/random-word-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
quantityNoHow many words to generate, 1 to 20 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
wordsYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, non-destructive, idempotent). The description adds useful context: words are everyday nouns, non-repeating, and returned as a list. However, it doesn't clarify whether 'no repeats' is per call or across calls, and the idempotentHint is questionable for a random generator.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the outcome, followed by return format and source. No filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, schema, annotations, and output schema together fully cover this low-complexity tool. The only minor gap is the ambiguity of 'no repeats' across calls, but the output schema likely resolves the return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'quantity' is fully described in the schema (100% coverage), so the description doesn't need to add much. It correctly implies the output size scales with quantity but adds no new parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Generate'), a concrete resource ('random everyday English nouns'), and the key constraint ('no repeats'). This clearly distinguishes it from sibling generators like random_letter_generator and random_number_generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the domain ('everyday English nouns'), but the description never explicitly says when to prefer this over sibling random generators or provides exclusions. An agent must infer selection from the name and resource type.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_ratio_calculatorRatio calculatorA
Read-onlyIdempotent
Inspect

Work with ratios. Mode 'simplify': reduce a ratio a : b to its lowest terms, and give the 1 : n form and the decimal a / b. Mode 'solve': find the missing value x in the equivalent ratio a : b = c : x using cross multiplication. All inputs must be positive. Source: https://hopi.co.uk/ratio-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
aYesFirst term of the ratio (positive)
bYesSecond term of the ratio (positive)
cNoKnown term of the equivalent ratio, mode 'solve' (a : b = c : x)
modeYes'simplify' a ratio, or 'solve' for the missing value

Output Schema

ParametersJSON Schema
NameRequiredDescription
aYes
bYes
modeYes
oneToNNo
decimalNo
summaryYes
simplifiedNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
simplifiedANo
simplifiedBNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable behavioral details: all inputs must be positive, simplify outputs lowest terms plus the 1:n form and decimal, and solve uses cross multiplication. It doesn't specify precision or error handling, but the output schema can cover that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the scope statement first and one sentence per mode. The trailing source URL is mildly extraneous for an agent deciding whether to call the tool, but it doesn't harm clarity enough to reduce the score further.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-mode calculator, the description covers mode selection, parameter roles, the solve equation, and input constraints. The conditional schema and output schema fill the remaining invocation details, so nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds useful relational meaning by showing how a, b, and c interact in ratio notation and which parameters apply to each mode. The explicit positivity constraint reinforces the schema's exclusiveMinimum checks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description moves beyond the title by defining two concrete operations: simplify a ratio to lowest terms with 1:n and decimal forms, and solve for a missing value in an equivalent ratio using cross multiplication. This clearly identifies the resource and its behavior, distinguishing it from generic calculator siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when each mode should be used: 'Mode simplify' reduces a:b, while 'Mode solve' finds x in a:b = c:x. It does not explicitly mention alternatives among siblings such as hopi_aspect_ratio_calculator, so it stops short of full when/where-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_reading_time_calculatorReading time calculatorA
Read-onlyIdempotent
Inspect

Estimate how long a block of text takes to read. Returns a silent reading time (225 words per minute) and a read-aloud time (130 words per minute), along with the word count. Source: https://hopi.co.uk/reading-time-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to measure

Output Schema

ParametersJSON Schema
NameRequiredDescription
wordsNo
summaryYes
aloudTimeNo
silentTimeNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds valuable behavioral detail beyond that: it specifies the two calculation speeds (225 wpm silent, 130 wpm read-aloud) and that word count is also returned. This is useful context an agent can rely on when interpreting results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a source URL, with no fluff. The main purpose is front-loaded, output details follow, and the source link is a compact addition. Every sentence earns its place, making this a model of concise tool documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only, idempotent utility with an output schema, the description is complete. It states the purpose, the specific return values, and the calculation assumptions. An agent has everything needed to call it correctly; no missing fields, side effects, or edge-case warnings are likely to matter for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% – the only parameter, 'text', is already described as 'The text to measure.' The description adds minimal extra meaning: it clarifies the expected input is a 'block of text' and mentions word count, but this does not significantly enhance schema semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Estimate how long a block of text takes to read.' This clearly distinguishes the tool from siblings like word_counter or character_counter, though it does not explicitly name an alternative. The resource is unique enough that an agent should not confuse it with other calculator tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by the description – you pass text and get reading time. However, there is no explicit guidance on when to prefer this over similar text tools like hopi_word_counter, nor any exclusions or prerequisites. It is adequate but leaves the when-to-use decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_redundancy_pay_calculatorRedundancy pay calculatorA
Read-onlyIdempotent
Inspect

Work out UK statutory redundancy pay for redundancies on or after 6 April 2026, using the gov.uk count-back method: for each full year of service (up to 20), 1.5 weeks if worked aged 41+, 1 week aged 22 to 40, and 0.5 weeks under 22. Weekly pay is capped at £751 and the total at £22,530. At least 2 full years of service are needed. Amounts in GBP. Source: https://hopi.co.uk/redundancy-pay-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
ageYesAge at redundancy (15 to 100)
yearsYesFull years of continuous service (0 to 60, cannot exceed age)
weeklyPayYesGross weekly pay in GBP

Output Schema

ParametersJSON Schema
NameRequiredDescription
ageYes
totalYes
weeksYes
yearsYes
summaryYes
weeklyPayYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
totalCappedNo
serviceCappedNo
cappedWeeklyPayNo
weeklyPayCappedNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as read-only and idempotent, and the description goes well beyond that by exposing the full statutory count-back formula, age bands, weekly pay cap, total cap, and eligibility condition. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four compact sentences pack purpose, legal basis, computation, caps, eligibility, currency, and source with no filler. The main verb and object are front-loaded, and every remaining clause carries operational value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition is complete for an agent to decide and invoke the tool: it gives the effective-dated rules, the exact multiplier table, caps, and the minimum service threshold. Since an output schema exists, not describing the return shape is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Though schema coverage is 100%, the description adds critical meaning: years are capped at 20 for the calculation, weeklyPay is capped at £751, the total at £22,530, and the age bands map directly to the age parameter. These nuances are not inferable from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Work out') and a precise resource ('UK statutory redundancy pay'), and adds a clear effective date. This is unambiguous and distinct from any sibling calculator, which all concern other domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when the tool applies ('redundancies on or after 6 April 2026') and imposes an eligibility threshold ('At least 2 full years of service are needed'), which tells an agent not to use it for earlier or shorter-service cases. It does not explicitly name alternative calculators, but no sibling covers the same domain.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_remove_duplicate_linesDuplicate line removerA
Read-onlyIdempotent
Inspect

Remove duplicate lines from a block of text, keeping the first occurrence of each line in its original order. Can optionally ignore letter case when deciding what counts as a duplicate. Returns the deduplicated text plus how many lines were kept and removed. Source: https://hopi.co.uk/remove-duplicate-lines/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to deduplicate, one item per line
caseInsensitiveNoTreat lines that differ only in case as duplicates (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
keptNo
resultNo
removedNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds genuinely useful behavioral detail: first-occurrence ordering, optional case-insensitive matching, and the exact return contents (deduplicated text plus counts of kept/removed lines). This goes well beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the core behavior first, then optional behavior, then the return value. The source URL is a minor addition but is non-disruptive and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich parameter schema, a dedicated output schema, and safety-carrying annotations, the description covers everything needed to invoke the tool correctly: input format, deduplication semantics, case sensitivity, and return value contents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters (text, caseInsensitive) are already documented in the schema. The description reinforces the 'one item per line' requirement and the case-insensitive option, but does not add significant meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Remove') and resource ('duplicate lines from a block of text'), and clearly explains the behavior of keeping the first occurrence in original order. This makes it immediately distinguishable from text-cleaning siblings like hopi_remove_extra_spaces or hopi_remove_line_breaks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended input clear ('a block of text, one item per line'), and the optional case-insensitive behavior is stated. However, it does not explicitly contrast itself with sibling text tools or say when not to use it, so usage guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_remove_extra_spacesRemove extra spacesA
Read-onlyIdempotent
Inspect

Tidy up spacing in text: collapse runs of spaces, tabs and non-breaking spaces down to a single space and trim each line. Can optionally also remove blank lines. Line breaks between lines are kept. Source: https://hopi.co.uk/remove-extra-spaces/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to clean
removeBlankLinesNoAlso drop empty lines (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
linesNo
resultNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive, so the description's job is to add transformation specifics. It does so in detail: it names the exact whitespace characters handled (spaces, tabs, non-breaking spaces), states that each line is trimmed, preserves line breaks, and exposes optional blank-line removal. The source URL adds provenance, and nothing in the description contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences plus a source URL; the core behavior is front-loaded in the first sentence, followed by the optional flag and the key caveat. Every sentence carries information an agent needs, and there is no redundant restatement of the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two parameters, rich annotations, and an output schema present, the description covers all relevant decisions: what gets normalized, that line breaks survive, and how blank lines are handled. The specification of tabs and non-breaking spaces handles likely edge cases, making the tool callable without further investigation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both 'text' and 'removeBlankLines' with defaults. The description explains the effect of removeBlankLines ('Can optionally also remove blank lines') and implies the text parameter via 'text', but does not add meaningful syntax, edge-case, or format details beyond the schema. This is the baseline-3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Tidy up spacing in text') and precisely enumerates the transformation: collapse runs of spaces, tabs, and non-breaking spaces, trim each line, and optionally remove blank lines. It also explicitly states 'Line breaks between lines are kept', which distinguishes this tool from nearest siblings like hopi_remove_line_breaks and hopi_remove_duplicate_lines without requiring the agent to infer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The behavior described establishes clear usage context: use when whitespace within text needs normalizing while line structure is preserved. The explicit caveat that line breaks are kept and the optional removeBlankLines flag imply when not to use line-break-removal siblings, though no sibling is named and no explicit when/when-not statement is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_remove_line_breaksRemove line breaksA
Read-onlyIdempotent
Inspect

Remove line breaks from text. In 'spaces' mode every line is joined into one with single spaces. In 'paragraphs' mode blank lines are treated as paragraph breaks, so text is joined within each paragraph while the blank line between paragraphs is preserved. Source: https://hopi.co.uk/remove-line-breaks/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'spaces' joins everything into one block (default), 'paragraphs' keeps paragraph breaksspaces
textYesThe text to join

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
resultNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is known. The description adds mode-based behavioral details (joining with single spaces vs. preserving blank lines between paragraphs), which is valuable for predicting output and doesn't contradict any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with the main action front-loaded. The source URL at the end adds provenance but is not needed for invocation, so it slightly reduces efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter transformation tool with full schema descriptions, read-only/idempotent annotations, and an output schema, the description is complete. It explains both modes unambiguously and provides all information an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are already documented in the schema. The description's explanation of modes largely duplicates the schema description for 'mode', adding no additional parameter meaning beyond what's already structured.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Remove' and the resource 'text', and explains the two modes ('spaces' and 'paragraphs'). This distinguishes it from similar tools like hopi_remove_duplicate_lines and hopi_remove_extra_spaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use each mode ('spaces' joins everything, 'paragraphs' preserves paragraph breaks). It doesn't explicitly name alternatives such as hopi_remove_duplicate_lines, but within the tool the mode guidance is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_reverse_textReverse text generatorA
Read-onlyIdempotent
Inspect

Reverse text in one of three ways. 'characters' reverses the entire text character by character. 'words' reverses the order of words on each line. 'each' keeps the word order but reverses the letters within each word. Source: https://hopi.co.uk/reverse-text/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'characters' (default), 'words' reverses word order per line, 'each' reverses letters within each wordcharacters
textYesThe text to reverse

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by explaining exactly how each mode transforms the input, which is behavioral detail beyond the annotations. It also cites the source URL, adding provenance context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero waste. The core behavior is front-loaded, each mode is defined in one clause, and the source URL is appended without disrupting readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter text transformation tool with full schema coverage and an output schema, the description is nearly complete. It could explicitly mention that the output is the transformed text, but the output schema likely covers that. The mode semantics are fully specified, which is the main contextual need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds value by explaining the semantic difference between 'words' and 'each' in plain language, which complements the schema's enum descriptions. The default behavior ('characters') is also clearly stated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Reverse') and resource ('text'), and immediately distinguishes three modes ('characters', 'words', 'each') with precise behavioral definitions. This clearly differentiates it from sibling text tools like hopi_upside_down_text or hopi_text_repeater.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the three modes and their effects, giving an agent enough context to choose the right mode. It does not explicitly state when to use this tool over alternatives like hopi_upside_down_text, but the mode definitions make the usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_rgb_to_hexRGB to hex converterA
Read-onlyIdempotent
Inspect

Convert red, green and blue values (each a whole number from 0 to 255) to an uppercase hex colour code. Source: https://hopi.co.uk/rgb-to-hex/

ParametersJSON Schema
NameRequiredDescriptionDefault
bYesBlue, 0 to 255
gYesGreen, 0 to 255
rYesRed, 0 to 255

Output Schema

ParametersJSON Schema
NameRequiredDescription
hexNo
summaryYes
rgbStringNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the specific output format (uppercase hex) and input range (0-255), which are behavioral details beyond the schema. It doesn't mention edge cases like rounding or invalid input handling, but for a pure conversion tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that states the input, output, and format. It is front-loaded with the action and resource, and the source URL is a minor addition. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple conversion tool with full schema coverage, an output schema, and safety annotations, the description is complete. It could mention that the output is a string with a '#' prefix, but the term 'hex colour code' implies this. The source URL is a nice touch for verification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter (r, g, b) with ranges. The description adds the overall context (whole numbers 0-255) but doesn't add per-parameter meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts red, green, and blue values (0-255) to an uppercase hex colour code. It uses a specific verb ('convert') and resource ('RGB values to hex colour code'), and the title and description align perfectly. It is distinct from siblings like hopi_hex_to_rgb and hopi_hsl_converter because it explicitly names the input format and output format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you have RGB values and need a hex code. It doesn't explicitly state when not to use it or name alternatives like hopi_hex_to_rgb, but the context is clear enough for an agent to select it correctly. The source URL adds credibility but not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_ring_size_converterRing size converterA
Read-onlyIdempotent
Inspect

Convert a ring size between UK, US and millimetre scales. Mode 'uk' takes a UK letter F to Z (add 1/2 for half sizes, e.g. 'N' or 'N 1/2'). Mode 'us' takes a US number 2.75 to 12.75. Mode 'mm' takes an inside circumference in mm (about 44 to 69). Returns UK size, US size, circumference and inside diameter. Source: https://hopi.co.uk/ring-size-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesWhich scale the value is in
valueYesThe ring size to convert: a UK letter (uk mode), or a number (us or mm mode)

Output Schema

ParametersJSON Schema
NameRequiredDescription
ukYes
usYes
modeYes
summaryYes
diameterMmYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
circumferenceMmYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context on top: accepted input ranges for each mode, the half-size format for UK letters, and the four output values returned. It does not cover invalid-input behavior, but this is a minor gap for a simple conversion tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by mode-specific input rules and a clear statement of outputs. Every sentence contributes useful information, and the source URL is a minor but harmless addition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple conversion tool with a full input schema and an output schema, the description covers everything needed: input modes, valid ranges, value formatting, and expected return fields. An agent can select and call this tool correctly without additional documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds valuable meaning beyond the schema: valid ranges for each mode, example half-size notation like 'N 1/2', and the semantic distinction between UK letters, US numbers, and mm circumference. This helps an agent construct valid values more accurately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Convert a ring size between UK, US and millimetre scales.' It clearly identifies the tool's domain and distinguishes it from the many other converter tools in the sibling list, such as shoe size or unit converters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear mode-specific usage guidance: what value formats are valid for 'uk', 'us', and 'mm' modes, including ranges and half-size notation. It does not explicitly name alternatives or state when not to use this tool, but the domain is specific enough that the intended context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_robots_txt_generatorRobots.txt generatorA
Read-onlyIdempotent
Inspect

Build a robots.txt file from allow and disallow rules grouped by user agent, with an optional sitemap line. You can pass a preset ('allow' all, 'block' all, 'wordpress') or your own rules array. Source: https://hopi.co.uk/robots-txt-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
rulesNoCustom rules, each an object with agent, directive and path
presetNoUse a ready-made rule set instead of custom rules
sitemapNoOptional sitemap URL for the Sitemap line

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYes
robotsTxtYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the side-effect profile. The description adds useful behavioral detail beyond the schema: rules are grouped by user agent, presets map to ready-made rule sets, and an optional sitemap line can be included.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences front-load the core behavior, then cover presets, custom rules, and sitemap. The source link is a minor addition and does not bloat the description. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, side-effect-free generator with full schema coverage and an output schema, the description is largely complete. The only small gap is that it does not state what happens when neither a preset nor rules are provided, but this is a minor edge case for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds mild value by clarifying preset meanings ('allow' all, 'block' all) and mentioning the custom rules array, but it does not substantially expand on parameter details already present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds a robots.txt file from allow/disallow rules grouped by user agent, with an optional sitemap line. It also distinguishes two input modes (preset or custom rules), making the tool's purpose unmistakable among many unrelated sibling generators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context by explaining that you can pass a preset ('allow', 'block', 'wordpress') or a custom rules array, and that sitemap is optional. It does not explicitly discuss when not to use the tool or compare it to alternatives, but no similar sibling exists, so the context is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_roman_numerals_converterRoman numerals converterA
Read-onlyIdempotent
Inspect

Convert between numbers and Roman numerals, both directions, for whole numbers from 1 to 3999. Give a number (e.g. 2026) to get its numeral, or a Roman numeral (e.g. MMXXVI) to get the number. The direction is detected automatically from the input. Source: https://hopi.co.uk/roman-numerals-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesA whole number from 1 to 3999, or a Roman numeral using I, V, X, L, C, D and M

Output Schema

ParametersJSON Schema
NameRequiredDescription
romanYes
numberYes
summaryYes
directionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations that already declare the operation as read-only, idempotent, and non-destructive, the description adds key behavioral details: auto-detection of direction and support for both directions. It also cites a source link. It does not discuss invalid-input behavior, but that is a minor gap for this simple conversion tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded. The first sentence states the core purpose and constraints, followed by two helpful examples and the auto-detection note. Every sentence earns its place, and the source attribution does not clutter the guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter converter with a full input schema, an output schema, and safety-relevant annotations, the description is complete. It covers range, direction, examples, and auto-detection, so an agent has everything needed to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the parameter format and valid range, which establishes a baseline of 3. The description adds value by clarifying the input-to-output relationship: numbers yield numerals and numerals yield numbers, with direction auto-detected, plus illustrative examples that make parameter usage unambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts between numbers and Roman numerals in both directions, which is a specific verb and resource. It also gives the valid range (1 to 3999) and concrete examples, making it easy to distinguish from the many other sibling converter tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains exactly what inputs to provide and that direction is detected automatically, giving clear context for use. It does not explicitly name alternatives or when-not-to-use cases, but no sibling tool performs this same Roman numeral conversion, so the omission is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_rounding_calculatorRounding & significant figures calculatorA
Read-onlyIdempotent
Inspect

Round a number to a chosen number of decimal places or significant figures, with halves always rounded up (away from zero). Mode 'dp': decimal places, 0 to 12. Mode 'sf': significant figures, 1 to 15. Source: https://hopi.co.uk/rounding-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'dp' for decimal places, or 'sf' for significant figures
countYesHow many decimal places (0 to 12) or significant figures (1 to 15)
numberYesThe number to round

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
countYes
numberYes
roundedYes
summaryYes
formattedYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds the key behavioral detail of halves always rounding up (away from zero), which is not in annotations. It also specifies per-mode count limits, providing useful context beyond structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no redundancy. The primary action is stated first, followed by mode details and the source link. Every sentence earns its place, and it is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple rounding tool with a full input schema and an output schema indicated, the description covers the operation, modes, ranges, rounding rule, and even the source. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters. The description reinforces the ranges and clarifies the rounding rule, which is not captured in the schema. This adds meaningful semantic value beyond the schema, especially for the half-rounding behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool rounds a number to decimal places or significant figures, and specifies the rounding rule (halves rounded away from zero). This distinguishes it from other calculator siblings and leaves no ambiguity about its function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for rounding tasks and clearly defines the two modes (dp and sf) with their ranges. It does not explicitly mention alternatives or when not to use it, but the specificity makes the intended use obvious. No exclusions are stated, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_running_pace_calculatorRunning pace calculatorA
Read-onlyIdempotent
Inspect

Work out running pace, finish time or distance, in kilometres or miles. Mode 'pace' needs distance and timeSeconds; mode 'time' needs distance and paceSeconds (seconds per unit); mode 'distance' needs timeSeconds and paceSeconds. Distance is in the chosen unit. Returns pace per km and per mile, speed in km/h and mph, distance and total time. Source: https://hopi.co.uk/running-pace-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesWhich value to solve for
unitNoUnit for distance and the given pace. Default 'km'km
distanceNoDistance in the chosen unit (needed for 'pace' and 'time' modes)
paceSecondsNoPace in seconds per unit (needed for 'time' and 'distance' modes)
timeSecondsNoTotal time in seconds (needed for 'pace' and 'distance' modes)

Output Schema

ParametersJSON Schema
NameRequiredDescription
kphYes
mphYes
modeYes
timeYes
unitYes
summaryYes
distanceYes
pacePerKmYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
pacePerMileYes
timeSecondsYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this read-only and non-destructive. The description adds useful behavioral detail by specifying the output set: 'pace per km and per mile, speed in km/h and mph, distance and total time.' It also clarifies that distance is interpreted in the chosen unit. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the core purpose first, then mode-specific requirements, then outputs. The source URL adds minor extra noise, but the overall structure is efficient and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema with conditional requirements, the full coverage of parameter descriptions, the safety annotations, and an output schema, the description is complete enough for an agent to select and invoke the tool correctly. The description also states the modes, required inputs, and returned values explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with property descriptions and conditional required fields already documenting each parameter. The description restates the mode-parameter relationships and the seconds-per-unit meaning, which is helpful but largely redundant with the schema's structured information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Work out running pace, finish time or distance, in kilometres or miles.' It names the three distinct calculation modes ('pace', 'time', 'distance'), making the tool's function immediately clear and distinguishable from the many other calculator siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear, mode-specific usage guidance by stating exactly which parameters each mode requires. It does not explicitly mention alternative tools or when not to use this one, but the mode conditions leave little ambiguity about how to drive the tool correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_satoshi_converterSatoshi to BTC converterA
Read-onlyIdempotent
Inspect

Convert satoshis to BTC, mBTC and bits, or convert BTC to satoshis, mBTC and bits. Uses exact whole-satoshi integer maths. 1 BTC is 100,000,000 satoshis. Source: https://hopi.co.uk/satoshi-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesDirection of conversion
valueYesThe amount to convert: whole satoshis for sats_to_btc, or a BTC amount for btc_to_sats

Output Schema

ParametersJSON Schema
NameRequiredDescription
btcYes
bitsYes
mbtcYes
modeYes
satsYes
displayYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds valuable context by stating 'Uses exact whole-satoshi integer maths' (precision guarantee) and providing the conversion factor (1 BTC = 100,000,000 satoshis), plus a source URL. This goes beyond annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the core function, the second adds precision details and a source link. It is front-loaded and every sentence earns its place with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter converter with full schema coverage and an output schema, the description provides all necessary context: the conversion directions, the units involved, the integer precision, and the conversion rate. It does not explicitly mention handling of fractional BTC amounts, but the schema's 'BTC amount' implies that, and the output schema covers return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are described. The description adds meaning by clarifying that conversions include mBTC and bits, and that the tool uses exact integer maths, which informs how the 'value' parameter should be interpreted (whole satoshis vs BTC amounts). This goes slightly beyond the schema's bare parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Convert') and a specific resource ('satoshis to BTC, mBTC and bits'), and explicitly names both conversion directions. It distinguishes itself from sibling unit converters by focusing on Bitcoin units, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied rather than explicit: if you need Bitcoin unit conversion, this is the tool. It does not mention alternatives or exclusions, but the name and description make the use case obvious. For a simple converter, this is adequate but not exemplary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_savings_goal_calculatorSavings goal calculatorA
Read-onlyIdempotent
Inspect

Plan a savings goal, compounded monthly. Mode 'time' works out how long a monthly deposit takes to reach a target. Mode 'monthly' works out the monthly saving needed to reach a target within a number of years. Both take an optional starting balance and an annual interest rate. Amounts in GBP. Source: https://hopi.co.uk/savings-goal-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'time' finds the time to reach the goal; 'monthly' finds the monthly saving needed
rateYesAnnual interest rate as a percentage
startNoStarting balance in GBP (default 0)
yearsNoMonthly mode: number of years to reach the goal
targetYesSavings target in GBP (greater than zero)
monthlyNoTime mode: monthly deposit in GBP

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
rateYes
startYes
monthsYes
targetYes
monthlyNo
summaryYes
interestYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
timeToReachNo
totalPaidInYes
finalBalanceYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that the tool is read-only, idempotent, and non-destructive. The description adds valuable behavioral detail beyond that: compounding is monthly, amounts are in GBP, and the calculation supports an optional starting balance and annual interest rate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a one-line purpose, two mode explanations, shared optional parameters, currency context, and a source link. Every sentence contributes useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich schema, 100% parameter coverage, output schema existence, and annotations, the description provides the essential contextual facts—monthly compounding, mode behavior, optional inputs, and currency—that an agent needs to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and every parameter already has a meaningful description. The description adds a helpful prose summary of the mode-dependent roles of 'monthly' and 'years', but it does not significantly extend what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a savings goal planner with monthly compounding and explains both modes: 'time' for duration and 'monthly' for required monthly deposit. It is specific and understandable, but it does not explicitly differentiate itself from related sibling tools such as the compound interest calculator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear mode-based usage context: use 'time' when you have a monthly deposit and want the time to reach a target, and use 'monthly' when you have a time frame and want the required monthly saving. It does not explicitly state when not to use this tool or mention alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_schema_markup_generatorSchema markup generatorA
Read-onlyIdempotent
Inspect

Build valid JSON-LD structured data using schema.org. Supports FAQ pages, articles, local businesses and breadcrumb lists. Returns the JSON-LD object and a ready-to-paste script snippet. Source: https://hopi.co.uk/schema-markup-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoFor type 'local': website URL
faqsNoFor type 'faq': questions and answers
nameNoFor type 'local': business name
townNoFor type 'local': town or locality
typeYesThe schema type to build
hoursNoFor type 'local': opening hours
itemsNoFor type 'breadcrumb': ordered pages
phoneNoFor type 'local': telephone
authorNoFor type 'article': author name
streetNoFor type 'local': street address
headlineNoFor type 'article': the headline
modifiedNoFor type 'article': date modified
postcodeNoFor type 'local': postal code
publishedNoFor type 'article': date published

Output Schema

ParametersJSON Schema
NameRequiredDescription
htmlNo
typeNo
jsonLdNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior, so the description is not burdened with safety disclosure. The description adds useful behavioral context by specifying that it returns both a JSON-LD object and a ready-to-paste script snippet, which goes beyond what the annotations state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose, followed by supported types and return behavior. The source URL at the end is somewhat auxiliary but does not seriously detract from the overall tight structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema with 100% parameter coverage, the conditional 'allOf' requirements, the existing output schema, and the annotations covering safety, the description provides everything needed for an agent to select and invoke the tool correctly. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all 14 parameters with type-specific meanings. The description does not add parameter-level detail beyond the schema, which is acceptable given the complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Build') and resource ('valid JSON-LD structured data using schema.org'). It also lists the supported schema types (FAQ, article, local, breadcrumb) and the return format, making it easy to distinguish from generic generator siblings like hopi_meta_tag_generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes it clear that the tool is appropriate for generating schema.org JSON-LD for FAQ pages, articles, local businesses, and breadcrumbs. It does not explicitly state when not to use it or name alternatives, but the supported types provide clear context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_scientific_calculatorScientific calculatorA
Read-onlyIdempotent
Inspect

Evaluate a maths expression following the standard order of operations (BODMAS). Supports + - * / ^ (power), ! (factorial), % (as divide by 100), brackets, the constants pi and e, and the functions sin, cos, tan, asin, acos, atan, ln, log (base 10) and sqrt. Set angleMode to 'deg' (default) or 'rad' for trigonometry. Source: https://hopi.co.uk/scientific-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
angleModeNoAngle units for trigonometry: 'deg' (default) or 'rad'deg
expressionYesThe maths expression, e.g. '2 + 3 * 4', 'sin(30)', 'sqrt(2)^2', '5!'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
summaryYes
angleModeYes
formattedYes
expressionYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description need not restate these. It adds useful behavioral detail: the order of operations, that '%' is interpreted as divide-by-100, and that trig functions respect angleMode. This goes beyond the structured fields and gives the agent a clear picture of execution semantics without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tight paragraph that front-loads the core purpose, then lists supported operations and the angleMode control. Every sentence adds value; there is no redundant or promotional filler. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of a full input schema and output schema (not shown but implied), the description covers all essential aspects: the expression syntax, supported functions, constants, and the angleMode setting. It also provides a source link for reference. Nothing critical is missing for an agent to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters, so the baseline is 3. The description enriches meaning by clarifying the expression grammar (e.g., '%' as divide by 100, 'log' as base 10, list of supported functions) and the role of angleMode. This is more than a restatement and helps the agent craft valid inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool evaluates a maths expression using BODMAS, and enumerates the supported operators, constants, and functions. This distinguishes it from sibling calculator tools (e.g., percentage, BMI) which have narrower scopes, and the verb 'Evaluate' is precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to set angleMode for trig functions, which is a direct usage instruction. It does not explicitly mention alternatives, but given the generic nature of the tool, the context implies it is the go-to for arbitrary math expressions. No exclusions are given, but the scope is self-evident from the feature list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_secret_santa_generatorSecret Santa generatorA
Read-onlyIdempotent
Inspect

Draw Secret Santa gift pairings from a list of names. Every person gives to exactly one other person, and nobody is assigned to themselves (a derangement). Returns the giver to receiver pairs. Source: https://hopi.co.uk/secret-santa-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesThe list of participant names (at least two, no duplicates)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pairsNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds behavioral substance beyond that: the assignment guarantees (every giver gives to exactly one other person, no self-assignment) and the giver-to-receiver pair format. It does not explicitly say the assignment is random, but 'Draw' and the source context imply it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the purpose in the first sentence and constraints right after. The trailing source URL is not needed for tool invocation, which keeps it from a perfect score, but it is a minor blemish.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with a full input schema, annotations, and an output schema, the description is complete: it covers purpose, constraints, return pairs, and provenance. Nothing essential is missing for an agent to select and call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single 'names' parameter is already fully described in the schema (array, minItems 2, no duplicates). The description only refers to 'a list of names' and adds no parameter-level details, so the baseline of 3 for full schema coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise action and object: 'Draw Secret Santa gift pairings from a list of names.' It goes beyond the title by specifying the derangement constraint (no self-assignment, one recipient per giver), which clearly distinguishes it from other generator siblings like random_team_generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear intended context is stated: use when you need Secret Santa pairings from a list of names. There are no explicit when-not-to-use instructions or named alternatives, but no sibling tool offers the same pairing logic, so the omission is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_shoe_size_converterShoe size converterA
Read-onlyIdempotent
Inspect

Convert a UK shoe size to approximate EU and US sizes. Set sex to 'men' (UK 5 to 13) or 'women' (UK 2 to 9). UK size must be in whole or half steps. Source: https://hopi.co.uk/shoe-size-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
sexYesWhich sizing chart to use
ukSizeYesUK shoe size (whole or half, e.g. 8 or 8.5)

Output Schema

ParametersJSON Schema
NameRequiredDescription
euNo
ukNo
usNo
sexNo
noteNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable context beyond that: the conversion is 'approximate', which is an important quality signal, and it cites the source URL for transparency. No contradictions with annotations were found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence states the primary function; the second covers parameter constraints and the source. Every phrase earns its place, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple converter with an output schema present (so return format is defined) and annotations covering side effects, the description is largely complete. It includes the conversion direction, the approximation nature, accepted ranges, and source. It does not describe edge cases like what happens with a UK size outside the range, but the schema's constraints handle validation, and the description's explicit ranges give the agent enough guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides descriptions for both parameters (100% coverage), including allowed enum and min/max constraints. The description supplements this by explicitly stating sex-specific ranges (men UK 5-13, women UK 2-9), which are encoded in the schema's conditional allOf logic but not immediately visible to an agent reading the flat schema. This clarification adds meaning beyond the raw constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert'), the input resource ('UK shoe size'), and the outputs ('approximate EU and US sizes'). This unambiguously distinguishes it from the many converter tools in the sibling list, such as hopi_ring_size_converter and hopi_area_converter. The intent is clear without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: when you need to convert a UK shoe size to EU/US sizes papers and it explicitly documents the sex-specific accepted ranges ('men' UK 5 to 13, 'women' UK 2 to 9). It does not explicitly name alternatives to exclude, but the purpose is so specific that an agent can correctly route to this tool among the large sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_sleep_calculatorSleep cycle calculatorA
Read-onlyIdempotent
Inspect

Suggest sleep times using 90-minute cycles plus 15 minutes to fall asleep. Mode 'wake' takes a wake time and returns the best bedtimes (wake - 15 - cycles x 90 minutes). Mode 'bedtime' takes a bedtime and returns the best wake times (bedtime + 15 + cycles x 90 minutes). Both return options for 6, 5, 4 and 3 cycles. Times are 'HH:MM' 24-hour. Source: https://hopi.co.uk/sleep-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'wake' to find bedtimes from a wake time, or 'bedtime' to find wake times from a bedtime
timeYesThe known time as 'HH:MM' (24-hour): the wake time for mode 'wake', or the bedtime for mode 'bedtime'

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
timeYes
optionsYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: it details the calculation formulas, the 15-minute fall-asleep assumption, the cycle counts (6, 5, 4, 3), and the 'HH:MM' 24-hour time format. This is useful for setting expectations about the tool's output and logic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly structured, starting with the core purpose, then detailing mode-specific behavior and formulas, and ending with time format and source. Every sentence contributes necessary information with no filler, making it efficient for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple calculator with an output schema, the description fully covers the input modes, the formula used, the time format, and the cycle options. It leaves nothing essential unanswered; an agent has enough to invoke the tool correctly. The presence of an output schema means return-value details are handled elsewhere.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already described in the schema. The description adds value by explicitly linking each parameter to its purpose in the formulas ('wake - 15 - cycles x 90...' and 'bedtime + 15 + cycles x 90...'), clarifying how 'mode' and 'time' interact. This goes beyond just restating the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Suggest sleep times') and resource, and immediately explains the two modes ('wake' and 'bedtime') with distinct formulas. This leaves no ambiguity about what the tool does or how it differs from the many sibling calculators, making it easily distinguishable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use each mode: 'wake' for finding bedtimes from a wake time, and 'bedtime' for finding wake times from a bedtime. While it doesn't mention alternatives (there are none among siblings), the mode-specific guidance is clear and directly actionable for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_slot_machine_pickerSlot machine name pickerA
Read-onlyIdempotent
Inspect

Spin a slot machine reel of names or options and pick one at random. Every item has an equal chance. Returns the chosen item. Source: https://hopi.co.uk/slot-machine-picker/

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesThe list of names or options on the reel (at least two)

Output Schema

ParametersJSON Schema
NameRequiredDescription
indexNo
winnerNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While the annotations already mark the tool read-only and non-destructive, the description adds key behavioral details: the selection is random with 'every item has an equal chance' and it returns the chosen item. This goes beyond the annotations and discloses the stochastic nature of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core action and result. Three short sentences plus a source URL. The source URL is slightly extraneous but does not detract from the clarity. It earns high marks for concise structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with full schema coverage, an output schema, and annotations declaring safety, the description provides everything needed to call it correctly: what to input, the randomness behavior, and the returned value. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes the parameter 'items' as an array with a minimum of two, and the description reinforces that these are names/options. The schema coverage is 100%, so the baseline is 3. The description adds the 'equal chance' nuance but no extra operational semantics like handling duplicates or item types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Spin a slot machine reel') and a clear resource ('names or options') followed by the outcome ('pick one at random'). It is unambiguous about what the tool does. However, it does not explicitly differentiate itself from closely related siblings like wheel_spinner or spin_the_bottle, which also randomly select from a list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance about when to prefer this tool over alternatives such as wheel_spinner, yes_no_wheel, or random_team_generator. No exclusions or explicit conditions are provided, leaving the agent to infer usage purely from the generic 'pick one at random' behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_slug_generatorSlug generatorA
Read-onlyIdempotent
Inspect

Turn any title or text into a clean URL slug: lowercase, accents stripped, and every run of spaces, punctuation and symbols collapsed to a single hyphen, with hyphens trimmed from the ends. Source: https://hopi.co.uk/slug-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe title or text to slugify

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugNo
lengthNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds detailed behavioral rules beyond the annotations: lowercase, accent stripping, collapsing to a single hyphen, trimming edges. This is exactly the kind of context an agent needs to predict output. No contradiction with readOnlyHint/idempotentHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the core purpose and then specifies rules and a source link. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one input, an output schema, and annotations. The description covers the transformation rules and input purpose, making it complete for correct invocation. No missing details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema parameter description already states 'The title or text to slugify'. The tool description repeats the same idea and adds algorithm context but doesn't add new parameter-specific semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific transformation (turn title/text into a URL slug) and enumerates exact rules: lowercase, accent stripping, collapsing runs to a single hyphen, trimming edge hyphens. This clearly distinguishes it from sibling tools like url_encoder or case_converter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies usage for creating URL slugs from arbitrary text. It doesn't explicitly name alternatives or exclusion conditions, but the purpose is unambiguous and no competing tool in the sibling list serves the same function, 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.

hopi_small_text_generatorSmall text generatorA
Read-onlyIdempotent
Inspect

Convert text into decorative Unicode styles. 'superscript' uses tiny raised characters, 'smallcaps' uses small capital letters, and 'fullwidth' uses wide monospaced characters. Any character with no styled equivalent is left unchanged. Source: https://hopi.co.uk/small-text-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to convert
styleNoWhich style to apply (default superscript)superscript

Output Schema

ParametersJSON Schema
NameRequiredDescription
styleYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior, and the description adds a meaningful behavioral detail: characters without styled equivalents are passed through unchanged. It also clarifies what each style produces, which goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences plus a source attribution, with the primary action front-loaded and every sentence contributing information. There is no redundancy with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, read-only text transformation with full schema coverage, an output schema, and safety annotations, the description covers the only implicit ambiguity (fallback behavior) and the style semantics. Nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters, so the baseline is 3; the description adds extra value by explaining the visual meaning of each enum value and the fallback behavior for unsupported characters. It does not restate schema descriptions, so it earns above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('convert'), a resource ('text'), and the exact output domain ('decorative Unicode styles'), with the three style variants enumerated. This makes the tool's function unambiguous and readily distinguishes it from text utilities like case_converter or upside_down_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description communicates clear use context: any time text needs to be restyled in superscript, smallcaps, or fullwidth Unicode forms. It does not name alternative tools or exclusions, so it stops short of explicit routing, but for a simple transformation the intended use is evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_special_charactersSpecial characters to copyA
Read-onlyIdempotent
Inspect

List special characters and symbols grouped by category: arrows, stars and hearts, maths, currency, punctuation, legal marks and accents. Optionally filter to a single group. Returns the characters ready to copy. Source: https://hopi.co.uk/special-characters/

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoOptional: return only this group. Omit to return every group.

Output Schema

ParametersJSON Schema
NameRequiredDescription
groupNo
summaryYes
charactersNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate a read-only, idempotent, non-destructive tool. The description adds useful behavioral context: output is grouped by category, can be filtered, and is returned in copyable form. It also cites the source URL. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: purpose, category list, filtering behavior, output promise, and source are all packed efficiently. The most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, single-optional-parameter tool with an output schema, the description is complete: it identifies the content, the grouping, the optional filter, and the copy-ready result. The minor category-name mismatch is resolved by the schema enum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single optional parameter is fully covered by the input schema, including its enum values and default behavior, so the baseline is 3. The description repeats the filtering concept and gives friendlier category names, but 'stars and hearts' and 'legal marks' do not exactly match the schema's enum values, so it adds limited precise meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: it 'List[s] special characters and symbols' grouped by named categories, and it explains the result is 'ready to copy.' This clearly distinguishes it from the many calculator/convertor siblings and from more inspection-oriented tools like unicode_inspector.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended usage obvious: retrieve special characters for copying, optionally filtered by category via the group parameter. It does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_speed_converterSpeed converterA
Read-onlyIdempotent
Inspect

Convert a speed from one unit to another. Units: mph (miles per hour), kmh (kilometres per hour), ms (metres per second), kn (knots), mach (Mach, at 340.29 m/s). Source: https://hopi.co.uk/speed-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe speed value to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYes
fromYes
valueYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful context beyond annotations by defining mach at 340.29 m/s and citing the source URL, which clarifies the exact conversion basis an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences convey the action, supported units, conversion constant, and source. There is no fluff, and the core purpose is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple schema, full output schema, and safety annotations, the description is complete. It covers all units, gives the key Mach reference, and includes a source link, leaving no critical gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds value by expanding the enum abbreviations into full unit names and specifying the Mach constant. This gives the agent practical meaning beyond the raw schema enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Convert a speed') and resource (speed units), and lists all supported units with abbreviations. This clearly distinguishes it from sibling unit converters (length, weight, volume) by naming the speed domain explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The speed-specific wording makes the intended use clear, but it does not explicitly state when to prefer this tool over sibling converters or give exclusions. Usage is implied rather than directly routed, so it does not reach the level of explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_spin_the_bottleSpin the bottleB
Read-onlyIdempotent
Inspect

Spin the bottle and pick one player at random from those in the circle. Every player has an equal chance. Returns the chosen player. Source: https://hopi.co.uk/spin-the-bottle/

ParametersJSON Schema
NameRequiredDescriptionDefault
playersYesThe list of players in the circle (at least two)

Output Schema

ParametersJSON Schema
NameRequiredDescription
indexNo
chosenNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

B3.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says the choice is random with equal chance, but the annotations mark idempotentHint=true, which indicates repeated calls with the same players should produce the same result. This is a material contradiction about determinism/retry behavior, so the description conflicts with the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences front-load the action and fairness property. The source URL is mildly extraneous but does not hurt readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with an output schema and read-only annotations, the description covers the selection mechanism, fairness, and return value. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter is already fully documented in the schema (list of players, min 2, max 20). The description's 'circle' phrasing adds context but no meaningful parameter semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise action ('spin the bottle and pick one player at random') and the resource (players in the circle), clearly distinguishing it from the many sibling random/team/selector tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the use case—selecting one random player from a group—but provides no explicit when-to-use/when-not-to-use guidance or alternatives such as wheel_spinner or random_team_generator.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_sql_formatterSQL formatterA
Read-onlyIdempotent
Inspect

Format a SQL query: uppercase the keywords, put each clause on its own line and indent conditions, while leaving quoted strings, identifiers, numbers and comments untouched. Only whitespace and keyword case change. Source: https://hopi.co.uk/sql-formatter/

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesThe SQL query to format

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYes
formattedNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable behavioral detail: only whitespace and keyword case change, and quoted strings, identifiers, numbers, and comments are preserved. This goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action, and every clause adds useful information. The source URL is a minor extra but not distracting. No filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one simple parameter, a rich output schema, and annotations covering safety and idempotence, the description fully covers what the agent needs: what the tool does, what it preserves, and what gets modified. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single 'sql' parameter as 'The SQL query to format'. The description repeats this concept and adds transformation context, but it does not add materially new parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Format'), resource ('SQL query'), and enumerates precise transformations (uppercase keywords, line-per-clause, indent conditions). It clearly distinguishes this from sibling tools like hopi_json_formatter or hopi_css_minifier by name and content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use obvious: it is for formatting SQL queries. It does not explicitly call out alternatives or when-not-to-use conditions, but the context is clear and the sibling list reinforces that this is the SQL-specific formatting tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_staking_calculatorStaking rewards calculatorA
Read-onlyIdempotent
Inspect

Turn a quoted staking rate into a final balance and rewards earned. For an APR rate, choose daily or monthly compounding; for an APY rate, compounding is already included. Returns the final balance, rewards earned and the effective APY. Figures are treated as GBP. Source: https://hopi.co.uk/staking-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYesQuoted rate as a percentage (0 to 1000)
yearsYesTerm in years (above 0, up to 100)
rateTypeNoWhether the rate is APR (needs compounding) or APY (default apr)apr
principalYesAmount staked
compoundingNoCompounding frequency for APR (default daily)daily

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rewardsNo
summaryYes
rateTypeNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
compoundingNo
finalBalanceNo
rewardsStringNo
finalBalanceStringNo
effectiveApyPercentNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond annotations: it states that results include final balance, rewards, and effective APY, and explicitly notes that figures are treated as GBP. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the main purpose appears in the first sentence, followed by parameter-specific guidance, return values, currency note, and a source link. Every sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, 100% schema coverage, an output schema, and safety-focused annotations, the description covers what an agent needs: purpose, APR/APY behavior, return fields, currency assumptions, and source. There are no material gaps for invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the semantic relationship between rateType and compounding: APY already includes compounding while APR does not. This goes beyond the schema's generic enum descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Turn a quoted staking rate into a final balance and rewards earned.' This clearly distinguishes it from generic calculators like compound_interest_calculator or crypto_profit_calculator by focusing on staking rewards and APR/APY handling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete input-selection guidance: 'For an APR rate, choose daily or monthly compounding; for an APY rate, compounding is already included.' It does not name alternative sibling tools, but the staking-specific context and parameter branching make the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_stamp_duty_calculatorStamp duty calculatorA
Read-onlyIdempotent
Inspect

Work out Stamp Duty Land Tax (SDLT) on a property purchase in England and Northern Ireland. Buyer types: 'ftb' first-time buyer (relief up to £500,000, standard rates above), 'home' moving home (main residence), 'additional' second home or buy-to-let (higher rates, only from £40,000). Returns the tax due and the effective rate. Amounts in GBP. Scotland (LBTT) and Wales (LTT) have their own rates. Source: https://hopi.co.uk/stamp-duty-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
buyerYes'ftb' first-time buyer, 'home' moving home, 'additional' second home or buy-to-let
priceYesProperty purchase price in GBP

Output Schema

ParametersJSON Schema
NameRequiredDescription
buyerYes
priceYes
summaryYes
breakdownYes
stampDutyYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
effectiveRatePercentYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark the tool as read-only, idempotent, and non-destructive, so the description's job is to add behavior beyond safety. It discloses the return output ('tax due and the effective rate'), the first-time-buyer relief threshold up to £500,000, and the £40,000 threshold for additional properties. This adds meaningful behavioral context the annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: core action and jurisdiction first, then buyer-type details, return values, units, and jurisdictional exclusions. Every sentence contributes useful information, and the source URL is a minor but acceptable addition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complete annotations, fully described parameters, and presence of an output schema, the description covers all necessary calling context: eligible jurisdiction, buyer types, price units, return values, and excluded regions. The specific SDLT rate bands are omitted, but the tool itself calculates those and they would be redundant here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters already have descriptions, giving a baseline of 3. The description adds genuine value by explaining the buyer enum semantics in detail, including relief thresholds and the higher-rates threshold. It also confirms that amounts are in GBP, reinforcing the price parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Work out Stamp Duty Land Tax (SDLT) on a property purchase in England and Northern Ireland.' It also names the buyer types, making the tool's scope unambiguous. Although there is no direct sibling stamp-duty tool, this is clearly differentiated by jurisdiction and purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly scopes usage to England and Northern Ireland and notes that 'Scotland (LBTT) and Wales (LTT) have their own rates,' effectively telling the agent not to use this tool for those jurisdictions. It also explains when each buyer type applies. It does not name an explicit sibling alternative, but none close exists among the listed tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_standard_deviation_calculatorStandard deviation calculatorA
Read-onlyIdempotent
Inspect

Work out the sample and population standard deviation, sample and population variance, mean and count from a list of numbers. Provide the numbers separated by spaces, commas, semicolons or new lines. Sample figures need at least two values. Source: https://hopi.co.uk/standard-deviation-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
numbersYesA list of numbers separated by spaces, commas, semicolons or new lines

Output Schema

ParametersJSON Schema
NameRequiredDescription
meanYes
countYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
sampleVarianceYes
populationVarianceYes
sampleStandardDeviationYes
populationStandardDeviationYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as read-only, idempotent, and non-destructive. The description adds value beyond that by listing accepted separators, the required minimum of two values for sample figures, and the full set of computed results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: outputs are front-loaded, then input format, then an edge-case rule. Each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter calculator with an output schema and safety annotations, the description covers all necessary input rules and the full scope of results. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by restating accepted separators and adding the 'at least two values' constraint for sample statistics, which is not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States exactly what the tool computes: sample/population standard deviation, variance, mean, and count from a list of numbers. This clearly distinguishes it from the many calculator siblings by naming its specific outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The statistical outputs make the intended use obvious, but there are no explicit alternatives or when-not-to-use conditions. Guidance is implied rather than directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_star_sign_calculatorStar sign calculatorA
Read-onlyIdempotent
Inspect

Find the western zodiac star sign for a date of birth. Dates use the YYYY-MM-DD format (only the month and day matter). Returns the sign, its symbol, date range and element. Source: https://hopi.co.uk/star-sign-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate of birth in YYYY-MM-DD format

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
signNo
rangeNo
symbolNo
elementNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds valuable behavioral detail beyond the annotations: it notes that 'only the month and day matter' (ignoring the year) and specifies the exact output contents (sign, symbol, date range, element). This gives the agent a clear picture of behavior without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a source URL, with zero fluff. The purpose is front-loaded, the format note is concise, and the output details are listed compactly. Every sentence earns its place, making it an exemplary model of concise, structured documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with an output schema, the description is complete. It covers the purpose, the date format and its nuance, and the expected return values. The output schema handles the detailed return structure, so nothing essential is missing for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the 'date' parameter with format YYYY-MM-DD, achieving 100% coverage. The description reinforces the format and adds the nuance that only the month and day matter, which is not in the schema. This extra semantic detail helps the agent understand the parameter's behavior, going beyond the schema's baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Find the western zodiac star sign for a date of birth.' This is a specific verb-resource pair that distinguishes it from sibling tools like hopi_age_calculator or hopi_day_of_week_calculator. The mention of 'western zodiac' and the returned fields (sign, symbol, date range, element) leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for finding a star sign from a date of birth. It does not explicitly list alternatives or when not to use it, but the purpose is so specific that an agent would naturally select it for star-sign queries. The context is unambiguous and there are no exclusions, meeting the 'clear context, no exclusions' criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_student_loan_calculatorStudent loan repayment calculatorA
Read-onlyIdempotent
Inspect

Work out UK student loan repayments from an annual salary using 2026/27 thresholds. Plans: 'p1' Plan 1 (9% above £26,900), 'p2' Plan 2 (9% above £29,385), 'p4' Plan 4 (9% above £33,795), 'p5' Plan 5 (9% above £25,000), 'pg' Postgraduate Loan (6% above £21,000). An undergraduate plan can optionally add a Postgraduate Loan on top. Returns yearly and monthly repayments. Amounts in GBP. Source: https://hopi.co.uk/student-loan-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
planYesRepayment plan
salaryYesAnnual salary in GBP
addPostgraduateNoAdd a Postgraduate Loan on top of an undergraduate plan (ignored when plan is pg; default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
planYes
salaryYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
addPostgraduateYes
postgraduatePartYes
repaymentPerYearYes
repaymentPerMonthYes
undergraduatePartYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark the tool as readOnly, idempotent, and non-destructive, so the description only needs to add behavioral context, which it does thoroughly. It discloses each plan's rate and threshold, the optional Postgraduate Loan stacking behavior, that yearly and monthly repayments are returned, that amounts are in GBP, and the source URL.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose, plan breakdown, optional stacking, output format, currency, and source. It front-loads the main purpose and keeps all necessary qualifying details in a compact form without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's multi-plan complexity, the description covers everything an agent needs to invoke it correctly: all plan identifiers, thresholds, percentages, the optional PG combination, and the output type. The presence of an output schema means return-value structure does not need to be explained here, and the description even provides the authoritative source.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema covers all parameters, the description adds substantial meaning beyond the schema's terse definitions. Most importantly, it expands the plan enum values with exact rates and thresholds, and it clarifies how addPostgraduate interacts with undergraduate plans, which the schema only hints at.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Work out UK student loan repayments from an annual salary using 2026/27 thresholds.' This clearly distinguishes it from the generic hopi_loan_calculator and other finance calculators by naming the exact domain, input, and calculation year.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended context clear — use this tool whenever UK student loan repayments need to be calculated from an annual salary. It does not explicitly name alternative tools or state when not to use it, but the specificity of 'UK student loan repayments' leaves little ambiguity about appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_take_home_pay_calculatorTake-home pay calculatorA
Read-onlyIdempotent
Inspect

Work out UK take-home pay from an annual gross salary for the 2026/27 tax year in England, Wales and Northern Ireland, using code 1257L income tax bands (20/40/45%) with personal allowance taper above £100,000, plus employee National Insurance. Returns net pay per year, month and week, and the tax and NI deducted. Amounts in GBP. Source: https://hopi.co.uk/take-home-pay-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
salaryYesAnnual gross salary in GBP

Output Schema

ParametersJSON Schema
NameRequiredDescription
salaryYes
summaryYes
incomeTaxYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
takeHomePerWeekYes
takeHomePerYearYes
takeHomePerMonthYes
nationalInsuranceYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly, idempotent, non-destructive), the description reveals the exact tax-year-specific rules: code 1257L, 20/40/45% bands, personal allowance taper over £100k, and employee National Insurance. It also states the return breakdown (net pay per year/month/week, tax/NI deducted) and currency, offering substantive behavioral detail without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact two-sentence block that puts the core action first and packs the essential constraints (country, tax year, codes, bands, taper, NI, output breakdown) into a short, readable format. No filler or redundant phrasing; the source URL is appended without disrupting clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one documented parameter contributed in the schema, an output schema present, and annotations already covering safety, the description provides all additional context needed to invoke it correctly: the exact tax year, regional scope, tax code, bands, taper threshold, NI treatment, and output units. It doesn't need to explain return formatting because an output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the 'salary' parameter as 'Annual gross salary in GBP' (100% coverage). The description repeats this context but adds no new parameter-specific details beyond confirming the annual and GBP units, so the description adds no meaningful semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Work out UK take-home pay from an annual gross salary' for a specific tax year, jurisdiction, and tax rules. It also lists what it returns (net pay per year/month/week and deductions), distinguishing it from calculators like hopi_national_insurance_calculator or hopi_net_to_gross.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the input context (annual gross salary, UK, 2026/27) but does not explicitly say when to use this tool over alternatives like hopi_net_to_gross or hopi_national_insurance_calculator. The usage is implied by the detailed scope, but no direct comparisons or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_tarot_readerTarot card readerA
Read-onlyIdempotent
Inspect

Draw a tarot spread from all 78 Rider-Waite-Smith cards, dealt without replacement using cryptographic randomness. Spreads: daily (1 card), past-present-future (3), situation (3: situation, obstacle, advice), decision (5), relationship (6), career (5), celtic (10, Celtic Cross). Returns each position with its card, orientation and keywords, plus counts of Major Arcana and reversed cards. For reflection and fun, not prediction. Source: https://hopi.co.uk/tarot-reader/

ParametersJSON Schema
NameRequiredDescriptionDefault
spreadYesWhich spread to draw
reversedNoAllow reversed cards (default true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
spreadYes
summaryYes
positionsYes
majorCountYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
spreadNameYes
reversedCountYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds substantial behavioral detail beyond that: cards are dealt without replacement using cryptographic randomness, each position returns card/orientation/keywords, and Major Arcana/reversed counts are included. It also manages expectations with 'not prediction,' which is valuable context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: action and method first, then spread options, then output shape, then purpose caveat and source. Every sentence conveys useful information without repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tarot tool with an output schema and safety annotations, the description covers everything an agent needs: the deck, randomness, spread choices, output contents, and appropriate use. It is fully self-contained and leaves no material gap for selecting or invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds significant meaning by mapping every spread enum value to its card count and positional meaning. This helps an agent select the right spread much more effectively than the bare enum names alone. The reversed parameter is already clear from the schema, and the description reinforces it by mentioning orientation and reversed-card counts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: 'Draw a tarot spread from all 78 Rider-Waite-Smith cards.' It goes far beyond the title by naming the deck, the dealing method, and all supported spread types, so an agent can clearly identify what the tool does and how it differs from other random/generator tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: it is 'for reflection and fun, not prediction,' and it enumerates the exact supported spreads. It does not explicitly name sibling alternatives or say when to choose this over fortune_cookie, magic_8_ball, or other random tools, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_tdee_calculatorTDEE & calorie calculatorA
Read-onlyIdempotent
Inspect

Estimate daily calories (TDEE) and BMR using the Mifflin-St Jeor equation. BMR = 10 x kg + 6.25 x cm - 5 x age + (5 for male, -161 for female). TDEE = BMR x activity factor (sedentary 1.2, light 1.375, moderate 1.55, active 1.725, very_active 1.9). Use units 'metric' (heightCm, weightKg) or 'imperial' (heightInches, weightPounds). Also returns mild-loss (-250), loss (-500) and gain (+500) calorie goals. Source: https://hopi.co.uk/tdee-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
ageYesAge in years
sexYesBiological sex
unitsYes'metric' (cm, kg) or 'imperial' (inches, pounds)
activityNoActivity level, default 'moderate'moderate
heightCmNoHeight in centimetres (metric)
weightKgNoWeight in kilograms (metric)
heightInchesNoTotal height in inches (imperial)
weightPoundsNoWeight in pounds (imperial)

Output Schema

ParametersJSON Schema
NameRequiredDescription
ageYes
bmrYes
sexYes
gainYes
lossYes
tdeeYes
summaryYes
activityYes
mildLossYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
activityFactorYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and idempotent, and the description adds useful behavioral detail: the exact equation, activity multipliers, unit choices, and returned calorie-goal deltas. This goes beyond the structured annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, then provides the formula, unit mappings, and output goals in a logical order. Every sentence conveys necessary information, and there is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, combined with the fully covered input schema and existing output schema, gives an agent everything needed to call this tool correctly. It explains the calculation method, unit requirements, activity options, and returned calorie goals, so no critical operational detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents the parameters. The description adds extra meaning by connecting heightCm/weightKg to metric and heightInches/weightPounds to imperial, and by showing how age, sex, and activity feed into the formula. This is meaningful value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Estimate'), a clear resource (daily calories/TDEE and BMR), and the exact method (Mifflin-St Jeor). It also names the output goals (mild-loss, loss, gain), making it easy to distinguish this from sibling health calculators like BMI or body-fat tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use clear: estimating TDEE and BMR with metric or imperial inputs. It does not explicitly name alternative tools or say when not to use this calculator, but the stated purpose and unit instructions provide enough context for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_test_card_number_generatorTest card number generatorA
Read-onlyIdempotent
Inspect

Generate Luhn-valid TEST card numbers for QA and development, or validate a card number. Test numbers pass the Luhn checksum and match a real brand format but are NOT real accounts, are linked to no one, and cannot be charged. Generate mode returns numbers for a brand (Visa, Mastercard, American Express, Discover); validate mode returns whether a number passes Luhn and its detected brand. Runs on Hopi's server; nothing is stored and no bank is contacted. Source: https://hopi.co.uk/test-card-number-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoGenerate test numbers, or validate a supplied number (default generate)generate
brandNoCard brand to generate (default visa)visa
countNoHow many numbers to generate, 1 to 50 (default 10)
numberNoFor validate mode: the card number to check (spaces and dashes are ignored)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
noteYes
brandYes
countNo
numbersNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and idempotent annotations, the description adds crucial behavioral detail: the numbers are not real accounts, cannot be charged, nothing is stored, and no bank is contacted. This fully discloses safety and external side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary action, then safety facts, then mode behavior, with no filler. The source link is a minor addition that supports trust without bloating the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a dual-mode tool with an output schema and rich annotations, the description covers purpose, modes, brands, safety constraints, server-side behavior, and data handling. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents mode, brand, count, and number. The description reiterates mode semantics and brand values but adds little parameter-level detail beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: generate Luhn-valid TEST card numbers for QA/development, or validate a card number. It clearly distinguishes the two modes and explicitly lists supported brands, so an agent can tell this from other Hopi generators/validators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the intended use case ('for QA and development') and explains when to use generate mode versus validate mode. It does not explicitly name alternative tools or exclusions, but the context is clear enough for a sibling-disambiguated selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_text_repeaterText repeaterA
Read-onlyIdempotent
Inspect

Repeat a piece of text a chosen number of times, joined by an optional separator, with optional line numbering. Count is capped at 10000 repeats and the output is capped at 100000 characters. Returns the repeated text plus its character and line counts. Source: https://hopi.co.uk/text-repeater/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to repeat
countYesHow many times to repeat it (1 to 10000)
numberingNoPrefix each repeat with a number, e.g. '1. ' (default false)
separatorNoHow to join the repeats (default none)none
customSeparatorNoThe separator string to use when separator is 'custom'

Output Schema

ParametersJSON Schema
NameRequiredDescription
linesNo
cappedNo
resultNo
summaryYes
charactersNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds significant behavioral context beyond annotations: the 10000-repeat cap, the 100000-character output cap, and the fact that it returns repeated text plus character and line counts. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tight sentences: the core operation, the limits, and the return value. Every sentence earns its place, and the key behavior is front-loaded. The source URL is a minor but acceptable addition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for this tool's complexity: it covers operation, configuration options, hard limits, and return values. Parameter details are fully provided by the input schema, and the annotations cover the safety profile, so an agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all five parameters. The description mentions separator and numbering, matching schema fields, but adds little semantic detail beyond what the schema provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Repeat a piece of text a chosen number of times', and clarifies optional separator and line numbering behavior. This clearly distinguishes the tool from text-manipulation siblings like reverse_text, text_splitter, or remove_duplicate_lines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is implied by the clear description, but there are no explicit when-to-use or when-not-to-use instructions and no named alternatives. For a simple utility tool this is adequate, but the guidance is not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_text_splitterText splitterA
Read-onlyIdempotent
Inspect

Split a long block of text into smaller blocks. In 'length' mode it splits into chunks up to a maximum character size, breaking at spaces where possible, and can add 1/n numbering to each block. In 'delimiter' mode it splits wherever a delimiter appears (use \n for newline, \t for tab). Returns the list of blocks. Source: https://hopi.co.uk/text-splitter/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'length' splits by character size (default), 'delimiter' splits at a delimiterlength
sizeNoMaximum characters per block for length mode (at least 10, default 280)
textYesThe text to split
numberedNoAdd ' n/total' numbering to each block in length mode (default false)
delimiterNoThe delimiter for delimiter mode; \n and \t are interpreted as newline and tab

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
countYes
blocksYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable behavioral details: splitting at spaces where possible in length mode, interpreting \n and \t in delimiter mode, and returning a list of blocks. This goes beyond the schema and gives the agent a clear model of how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences, front-loaded with the primary purpose, followed by mode details and return type. No redundant or irrelevant content; the source URL is a minor but non-intrusive addition. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a text-splitting tool with schema covering all parameters and an output schema implied, the description is sufficiently complete. It explains both modes, the numbering option, delimiter escaping, and return value. Edge cases like empty text or oversized words are not covered but are minor for this utility. Annotations already handle the operational safety context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning by explaining how mode affects splitting behavior and that numbered creates '1/n' suffixes in length mode. It also clarifies the delimiter special-character interpretation, reinforcing and slightly expanding on the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Split a long block of text into smaller blocks.' It then details two specific modes (length and delimiter), making it distinct from sibling text tools like hopi_character_counter or hopi_word_counter. The verb 'split' and resource 'text' are explicit and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool—whenever text needs to be split into smaller blocks—and explains the two operational modes, guiding which parameters to use. It does not explicitly name alternatives or exclusions, but the purpose is so specific that no close sibling alternatives exist among the listed tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_time_calculatorTime calculatorA
Read-onlyIdempotent
Inspect

Add or subtract two durations, each given as hours and minutes. Returns the total as an H:MM clock value, as decimal hours, and as total minutes. Results can be negative when subtracting. Source: https://hopi.co.uk/time-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
hours1NoHours of the first duration (default 0)
hours2NoHours of the second duration (default 0)
minutes1NoMinutes of the first duration (default 0)
minutes2NoMinutes of the second duration (default 0)
operationNoAdd or subtract the second duration from the first (default 'add')add

Output Schema

ParametersJSON Schema
NameRequiredDescription
clockNo
summaryYes
operationNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
decimalHoursNo
totalMinutesNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state the tool is read-only, idempotent, and non-destructive. The description adds useful behavioral detail beyond that: it discloses the exact output shape (H:MM clock value, decimal hours, total minutes) and the edge case that results can be negative when subtracting. This is meaningful additional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three focused sentences: the operation, the output formats, and the negative-result edge case. It is front-loaded with the primary action, includes the source for credibility, and contains no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, fully-optional-parameter calculator with an output schema and read-only annotations, the description covers what the tool does, what it returns, and an important edge case. An agent has enough information to select and invoke it correctly without further clarification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema. The description reinforces the meaning of the hour/minute pairs and the operation enum, but it does not add new parameter-level meaning beyond restating what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation (add or subtract two durations) and the resource (hours and minutes), and it explicitly lists the three return formats. It is specific enough to be recognizable, though it does not explicitly distinguish itself from nearby siblings like hopi_hours_calculator or hopi_minutes_to_hours.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action 'Add or subtract two durations' gives a clear sense of when the tool would be used, and the examples imply this is for duration arithmetic rather than time zone or clock conversion. However, there is no explicit when-to-use versus alternative guidance, and no mention of exclusion cases such as when to prefer another hopi calculator.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_time_zone_converterTime zone converterA
Read-onlyIdempotent
Inspect

Convert a wall-clock date and time from one time zone to another, using the server's IANA time zone data (so daylight saving is handled). Date uses YYYY-MM-DD and time uses 24-hour HH:MM. Zones are IANA identifiers such as Europe/London or America/New_York. Returns the converted time, the day difference, and both UTC offsets. Source: https://hopi.co.uk/time-zone-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesThe date in the source zone, YYYY-MM-DD format
timeYesThe time in the source zone, 24-hour HH:MM format
toZoneYesTarget IANA time zone, e.g. America/New_York
fromZoneYesSource IANA time zone, e.g. Europe/London

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
toZoneYes
dayNoteYes
summaryYes
fromZoneYes
onDstGapYes
toOffsetYes
fromOffsetYes
resultLongYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
dayDifferenceYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive. The description adds useful beyond-schema context: the server's IANA time zone data handles daylight saving, and it specifies the return payload (converted time, day difference, both UTC offsets). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: core operation first, then format constraints, then return values, plus a compact source link. No filler; every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deterministic read-only converter with four well-documented parameters and an output schema, the description covers inputs, formats, DST behavior, and return values. Nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all four parameters documented including formats and enumerated zone lists. The description reinforces the YYYY-MM-DD and HH:MM formats and IANA identifier semantics, but adds little beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: converting a wall-clock date and time from one time zone to another. The IANA zone identifier detail clearly distinguishes it from sibling converters like hopi_military_time_converter or hopi_unix_timestamp_converter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly describes the scenario: converting between time zones with DST handled via IANA identifiers. It doesn't explicitly name alternatives or exclusions, but the context is clear enough for an agent to select this tool over its converter siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_tip_calculatorTip calculatorA
Read-onlyIdempotent
Inspect

Work out a tip on a bill and optionally split the total between people. Returns the tip amount, the total, and the amount per person. Source: https://hopi.co.uk/tip-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
billYesThe bill amount before tip
splitNoNumber of people to split between (default 1)
tipPercentNoTip as a percentage (default 12.5)

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipNo
billNo
splitNo
totalNo
summaryYes
perPersonNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
tipPercentNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful behavioral context by stating what it returns: the tip amount, total, and per-person share. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the action, and every sentence contributes value. The source URL is a minor extra that does not detract from clarity or add significant noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple calculator with full schema coverage, output schema, and safety-bearing annotations, the description is complete. It explains the purpose, optional split behavior, and the exact return values, which is sufficient for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all three parameters (bill, split, tipPercent) already described in the schema. The description does not add parameter-specific semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Work out a tip on a bill') and clearly states the optional split behavior. It is unambiguous and distinct from the large sibling set of calculators, especially since 'tip' is the core resource and the output items are named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the usage context clear: use it to calculate a tip and optionally split the total. It does not explicitly mention alternatives like hopi_bill_splitter or state when not to use the tool, so it falls short of the 'explicit alternatives/exclusions' bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_triangle_calculatorRight-angle triangle calculatorA
Read-onlyIdempotent
Inspect

Solve a right-angle triangle from any two given values, at least one of which must be a side. Sides: a (opposite), b (adjacent), c (hypotenuse). angleA is angle A in degrees, between 0 and 90 (the third angle is the 90 degree right angle). Returns all three sides, both non-right angles, the area and the perimeter. Source: https://hopi.co.uk/triangle-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
aNoSide a, the opposite (greater than 0)
bNoSide b, the adjacent (greater than 0)
cNoSide c, the hypotenuse (greater than 0, must be the longest side)
angleANoAngle A in degrees, strictly between 0 and 90

Output Schema

ParametersJSON Schema
NameRequiredDescription
aYes
bYes
cYes
areaYes
angleAYes
angleBYes
methodYes
summaryYes
perimeterYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description supplements this by detailing the full set of outputs (all sides, angles, area, perimeter) and referencing a source URL. This adds behavior context beyond annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded. The main purpose appears in the first sentence, followed by parameter definitions, outputs, and a source link. Every sentence contributes necessary information without redundancy or padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, combined with the exhaustive input schema and the presence of an output schema, provides complete information for an agent to select and call the tool correctly. It covers purpose, input requirements, and output expectations, leaving no critical gaps for a simple calculator.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, providing per-parameter constraints by default. The description adds a cross-parameter rule not present in the schema: 'at least one of which must be a side.' It also clarifies the geometric roles of sides a, b, and c, which is essential for correct usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Solve a right-angle triangle from any two given values, at least one of which must be a side,' clearly specifying the verb, resource, and core constraint. It also defines side roles and the angle. No other sibling tool handles triangle geometry, so differentiation is inherent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear input conditions: any two values with at least one side. It doesn't name alternatives or exclusions, but given the tool's unique function among siblings, this absence is acceptable. The prerequisite is explicit, which is the primary usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_ucas_points_calculatorUCAS points calculatorA
Read-onlyIdempotent
Inspect

Add up UCAS tariff points from A-level grades using the current tariff: A* 56, A 48, B 40, C 32, D 24, E 16. Give the number of grades at each level. Returns the total points and the number of grades counted. Source: https://hopi.co.uk/ucas-points-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
aNoNumber of A grades (0 to 20)
bNoNumber of B grades (0 to 20)
cNoNumber of C grades (0 to 20)
dNoNumber of D grades (0 to 20)
eNoNumber of E grades (0 to 20)
aStarNoNumber of A* grades (0 to 20)

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
totalPointsYes
gradesCountedYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as readOnly, idempotent, and non-destructive. The description adds useful behavioral detail beyond those hints: the current tariff values, the input format, and the fact that it returns both the total points and the number of grades counted. This is sufficient for a simple calculator.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two efficient sentences plus a source URL. It front-loads the purpose and tariff, immediately gives the input convention, and then states the return values with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition is complete for this tool: annotations cover safety and determinism, the schema covers all six parameters, an output schema exists, and the description explains the calculation rule, expected inputs, and return summary. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each grade-count parameter already described and range-limited. The description adds the overall instruction to provide counts per level, but it does not materially extend what the schema already conveys, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Add up UCAS tariff points from A-level grades') and a clear resource domain, with the exact tariff values. It distinguishes itself from the large sibling set by focusing on A-level grades and the UCAS tariff, leaving no ambiguity about what the tool computes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly instructs the user to 'Give the number of grades at each level,' which is exactly the input convention required. It does not explicitly name alternatives or exclusions, but none of the sibling tools serve the same UCAS-points purpose, so the context is strong enough for correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_unicode_inspectorUnicode inspectorA
Read-onlyIdempotent
Inspect

Inspect text as Unicode. Returns the number of code points (iterated so emoji and other astral characters count as one), the UTF-16 length, the UTF-8 byte count, and per-character details: the character, its code point as U+XXXX, its decimal value, its UTF-8 bytes as hex, its HTML entity and a JavaScript escape. The character list is capped at 2000 entries. Source: https://hopi.co.uk/unicode-inspector/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to inspect

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYes
utf8BytesYes
charactersYes
codePointsYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
utf16LengthYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses meaningful behavior: astral characters are iterated as single code points, the result list is capped at 2000 entries, and the exact per-character fields are specified. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences front-load the main behavior and then enumerate output details efficiently. The source URL is the only extra element and it does not meaningfully bloat the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one required string parameter, full schema coverage, an output schema, and safety annotations, the description covers all needed invocation context. It even discloses the 2000-entry cap, which an agent should know before relying on full results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents the single 'text' parameter with 100% coverage. The description adds output details rather than new parameter semantics, so it meets but does not exceed the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Inspect text as Unicode') and enumerates the returned metrics (code points, UTF-16 length, UTF-8 bytes, per-character details), so an agent understands exactly what the tool does. This is distinct from generic text utilities like a simple character counter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it — whenever Unicode-level inspection or byte/codepoint metrics are needed — but it names no alternative tools or exclusion criteria. It leaves the agent to infer the boundary between this and nearby siblings like hopi_character_counter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_unit_price_calculatorUnit price comparisonA
Read-onlyIdempotent
Inspect

Compare the unit price of two or more items to find the best value. Each item has a price in GBP, a quantity and a unit ('g', 'kg', 'ml', 'l' or 'each'). Weights are compared per kg, volumes per litre, and counts each. Returns the unit price of every item and which is cheapest. Source: https://hopi.co.uk/unit-price-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesThe items to compare (at least two)

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
summaryYes
bestItemYes
mixedUnitsYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
bestUnitPriceYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral context by explaining the comparison standardization (per kg, per litre, each), the return of unit prices and the cheapest item, and cites a source URL. It provides meaningful behavioral detail beyond the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the primary purpose, and each sentence adds critical information: the action, the parameter format, and the output. The inclusion of the source URL is concise and does not detract. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested array input, output schema), the description covers the essential semantics: unit normalization, return value, and that it handles mixed units. It does not detail edge cases like rounding or formatting, but the presence of an output schema likely covers those. The description is adequate for an agent to invoke it correctly without confusion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes each parameter (price in GBP, quantity, unit enum). The description adds semantic meaning by explaining how units are normalized and compared (weights per kg, volumes per litre, counts each), which is not fully captured in the schema. Even with 100% schema coverage, this extra context enhances the agent's understanding of how to structure inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Compare the unit price of two or more items to find the best value') with a clear resource (items with price, quantity, unit). It explains the normalization logic (weights per kg, volumes per litre, counts each) and explicitly states the output (unit price of every item and which is cheapest), distinguishing it from any sibling tools (none are comparable).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool (comparing prices across items) and how units are standardized, but it does not explicitly state exclusions or alternatives. Given the sibling list contains no similar unit-price calculator, the usage intent is unambiguous, though no direct 'when not to use' guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_unix_timestamp_converterUnix timestamp converterA
Read-onlyIdempotent
Inspect

Convert between Unix epoch timestamps and readable dates. Pass a timestamp to get the UTC and local date (seconds or milliseconds detected automatically), or pass a date (and optional time, interpreted in local time) to get the timestamp in seconds and milliseconds. Source: https://hopi.co.uk/unix-timestamp-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoA date as YYYY-MM-DD. Provide this to convert a date to a timestamp.
timeNoOptional time as HH:MM:SS to accompany 'date' (default 00:00:00), in local time.
timestampNoA Unix timestamp in seconds or milliseconds (may be negative). Provide this to convert a timestamp to a date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
isoNo
utcNo
unitNo
localNo
summaryYes
relativeNo
directionNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds meaningful behavioral context: automatic detection of seconds vs milliseconds, return of both UTC and local dates, local-time interpretation for date input, and production of both seconds and millisecond timestamps. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences front-load the purpose, then give mode-specific usage directives and timezone semantics. There is no filler, and the source URL is a small useful addition rather than clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-mode conversion tool with an output schema and safety annotations, the description is complete: it covers both input modes, unit handling, timezone behavior, and output breadth. Nothing needed to invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description goes beyond the schema by clarifying that timestamps are auto-detected as seconds or milliseconds and that date/time input is interpreted in local time, adding real semantic value beyond the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert') and a clearly bounded resource: Unix epoch timestamps and readable dates. It explicitly covers both conversion directions and mentions automatic unit detection, making it easy to distinguish from sibling tools like hopi_time_zone_converter or hopi_date_calculator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear instructions on when to pass a timestamp versus a date, including the optional time parameter and local-time interpretation. It does not explicitly contrast itself with alternatives, so it stops short of a full 5, but it provides sufficient context for an agent to call it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_upside_down_textUpside down textA
Read-onlyIdempotent
Inspect

Flip text upside down using Unicode look-alike characters and reverse its order, so it reads as if rotated 180 degrees. Characters with no upside-down equivalent are kept as they are (but still reversed in position). Source: https://hopi.co.uk/upside-down-text/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to flip upside down

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral detail beyond annotations: characters without an upside-down equivalent are kept but still reversed in position. This gives the agent accurate expectations about edge-case handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences state the core behavior, the fallback for unsupported characters, and a source link. Every sentence earns its place, and the key behavior is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter, pure transformation tool with an output schema and safety-related annotations, the description covers everything an agent needs to invoke it correctly. The fallback behavior and reversal detail make the tool's behavior fully predictable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter with 100% schema description coverage ('The text to flip upside down'), so the schema already documents it fully. The description reinforces the meaning but adds no format, length, or encoding constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Flip'), names the resource ('text'), and explains the mechanism (Unicode look-alike characters plus reversed order) so the result is clearly a 180-degree rotation. This distinguishes it from siblings like hopi_reverse_text, which only reverses order without the character substitution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The described use case is clear: any text that should appear rotated 180 degrees. It does not explicitly name alternatives or state when not to use it, but the mechanism and output behavior are specific enough that an agent will not confuse it with simple reversal or other text-transform tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_url_encoderURL encode & decodeA
Read-onlyIdempotent
Inspect

Percent-encode or decode text for URLs. Component mode encodes every reserved character (right for a single query value); whole-URL mode leaves structural characters like / ? & alone (right for a complete address). Source: https://hopi.co.uk/url-encoder/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo'component' for a single value, 'uri' for a whole URL (default 'component')component
textYesThe text or URL to encode or decode
actionNoWhether to encode or decode (default 'encode')encode

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
actionYes
resultYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior, so the bar is lower. The description adds useful behavioral detail about how component mode percent-encodes reserved characters while uri mode leaves structural characters like / ? & intact, giving the agent a clear expectation 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core guidance is packed into two front-loaded sentences that cover function and mode selection efficiently. The trailing 'Source' line is credible provenance but does little to help an agent select or invoke the tool, so a perfect 5 is not warranted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage, clear annotations, and an output schema present, the description is complete enough for correct invocation. It resolves the main ambiguity—when to use component vs uri mode—and the remaining defaults and return expectations are already captured in structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description meaningfully enhances the mode enum by clarifying the practical difference between 'component' and 'uri', which the schema only names. It does not need to restate defaults because the schema already provides them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Percent-encode or decode text for URLs', a specific verb plus resource that clearly states the tool's function. It then explains the two modes, which helps distinguish it from sibling URL tools like hopi_url_parser and from other encoders such as hopi_base64.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The mode guidance is explicit: component mode is 'right for a single query value' and whole-URL mode is 'right for a complete address', including which characters are preserved. However, it does not explicitly name alternative sibling tools or state when not to use this tool, so it stops short of a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_url_parserURL parserA
Read-onlyIdempotent
Inspect

Parse a URL into its parts: protocol, host, port, path, fragment, origin and every decoded query parameter. If no scheme is given, https:// is assumed for a bare domain. Source: https://hopi.co.uk/url-parser/

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to parse

Output Schema

ParametersJSON Schema
NameRequiredDescription
hostNo
pathNo
portNo
originNo
paramsNo
summaryYes
fragmentNo
protocolNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
portIsDefaultNo
schemeAssumedNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already promise a safe read-only operation, so the description goes beyond them by disclosing the default-scheme behavior and the fact that query parameters are decoded. It does not mention failure modes or unsupported URL forms, but for a simple parser this is solid disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core behavior front-loaded and the edge-case default immediately after. The source URL at the end is slightly unnecessary but does not impede readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only parser with an output schema to document the return shape, the description covers inputs, output parts, and the only meaningful default. Nothing required to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only says the parameter is 'The URL to parse', while the description adds meaning: a bare domain is accepted and defaults to https, and query parameters are decoded. That is useful semantic detail beyond the 100%-covered schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb ('Parse'), a clear resource ('a URL'), and enumerates the exact outputs (protocol, host, port, path, fragment, origin, decoded query parameters), so an agent can distinguish it from siblings like hopi_url_encoder and hopi_user_agent_parser without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied by the output list rather than stated explicitly: there is no 'use when...' or note that encoding URLs is handled elsewhere. The behavioral note about assuming https for bare domains is useful but is not when-to-use guidance versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_user_agent_parserUser agent parserA
Read-onlyIdempotent
Inspect

Parse a user agent string into its parts: browser and version, rendering engine, operating system and version, device type (mobile, tablet or desktop) and whether it looks like a bot or crawler. Uses an ordered pattern table (Edge before Chrome, Chrome before Safari). User agent strings can be spoofed, so results are best-effort, not proof. Source: https://hopi.co.uk/user-agent-parser/

ParametersJSON Schema
NameRequiredDescriptionDefault
uaYesThe user agent string to parse

Output Schema

ParametersJSON Schema
NameRequiredDescription
osYes
botYes
deviceYes
engineYes
browserYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is already established. The description adds valuable behavioral context beyond those: the use of an ordered pattern table (Edge before Chrome, Chrome before Safari), which explains why matching may not be intuitive, and the explicit spoofing caveat framing results as best-effort. Also cites the source for verification. This exceeds the burden given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences total. The first sentence front-loads the core purpose and output list. The second adds essential algorithm detail. The third is a critical caveat. The fourth is the source link. Each sentence earns its place, though the source line could be considered optional metadata in a tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only parser with an output schema, the description tells the agent everything needed: what it parses, what it returns, how the algorithm behaves, the reliability caveat, and the source. Combined with the annotations and output schema, no meaningful gap remains for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter 'ua' is already described as 'The user agent string to parse'. The description reinforces that the string is a user agent and outlines what will be extracted, but doesn't add formatting, length, or validation syntax beyond the schema. Baseline 3 is appropriate when schema fully documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Parse a user agent string') and enumerates the exact output components: browser/version, rendering engine, OS/version, device type, and bot detection. It also distinguishes itself from the sibling URL parser and other string utilities by naming its unique resource (user agent strings). This is a clear, specific verb+resource statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it: whenever a user agent string needs decomposition. It does not explicitly name alternatives or exclusions, but among ~170 sibling tools the resource is unique enough that no alternative exists. The caution about spoofing adds context for when results should not be treated as authoritative, which is helpful guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_username_generatorUsername generatorA
Read-onlyIdempotent
Inspect

Invent memorable usernames by pairing a random adjective with a random noun, optionally with a two-digit number on the end. Returns a list of unique usernames. Source: https://hopi.co.uk/username-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoHow many usernames to generate, 1 to 50 (default 6)
addNumbersNoAppend a two-digit number to each name (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYes
usernamesYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds valuable behavioral context: the output is random, generated from adjective-noun pairs, and specifically unique. It also cites a source for the generation approach, which goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences: the first front-loads the core behavior, the second specifies the return shape and uniqueness. The source URL is appended without fluff, and there is no redundant restatement of the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two optional, fully documented parameters, rich safety annotations, and an output schema present, the description covers everything needed to invoke the tool correctly. It explains the generation mechanism, output uniqueness, and provenance, so no critical guidance is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with count and addNumbers both fully documented including defaults, ranges, and behavior. The description's mention of an optional two-digit number essentially mirrors the schema rather than adding new parameter-level meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('invent') and resource ('usernames'), explains the generation mechanism (random adjective + noun, optional two-digit number), and notes that it returns a list of unique usernames. This clearly distinguishes it from sibling generators like random_word_generator or dummy_data_generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a memorable random username is needed, but it does not explicitly state when to use this tool over alternatives, nor does it name any sibling tools. Among many similar generators, the agent must infer the appropriate context from the tool name and mechanism.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_uuid_generatorUUID generatorA
Read-onlyIdempotent
Inspect

Generate 1 to 100 random version 4 UUIDs using a cryptographically secure random source. Never uses Math.random. Source: https://hopi.co.uk/uuid-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoHow many UUIDs to generate, 1 to 100 (default 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
uuidsNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only and non-destructive. The description adds useful behavioral detail beyond the schema by specifying cryptographically secure randomness and explicitly stating it never uses Math.random. This is meaningful extra context with no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core action and constraints, and every sentence earns its place. The source URL is a minor provenance detail that does not bloat the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a trivial single-parameter generator with complete schema documentation, an output schema, and safe annotations, nothing important is missing. An agent can invoke it correctly with full confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'count' parameter is fully documented with default, minimum, and maximum. The description restates the range but adds no new parameter-level meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate'), the exact resource (random version 4 UUIDs), and a clear quantity range (1 to 100). This distinguishes it cleanly from sibling random/generator tools without needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys that this tool is for generating v4 UUIDs, which is the only real use case. It does not explicitly name alternatives or exclusions, but no UUID-specific sibling exists, so the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_vat_calculatorVAT calculatorA
Read-onlyIdempotent
Inspect

Add UK VAT to a net amount, or remove VAT from a gross (VAT-inclusive) amount. Default rate is the UK standard 20 percent. Returns the net, VAT and gross figures. Source: https://hopi.co.uk/vat-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes'add' VAT to a net amount, or 'remove' VAT from a gross amount
rateNoVAT rate as a percentage (default 20)
amountYesThe money amount

Output Schema

ParametersJSON Schema
NameRequiredDescription
netYes
vatYes
modeYes
rateYes
grossYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds useful context by stating the default UK rate and what the tool returns (net, VAT, and gross figures), going beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with no filler. The core operation is front-loaded, the default behavior is stated, the return figures are summarized, and the source is included without bloating the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple calculator nature, strong schema with a mode enum, comprehensive annotations, and an output schema, the description covers everything an agent needs: purpose, modes, default rate, and returned figures. No meaningful gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful operational context: it explains how 'amount' and 'mode' interact (net vs gross input) and confirms the default rate. This helps the agent map intent to parameters beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Add UK VAT', 'remove VAT') and identifies the exact resource (a UK VAT calculator). It clearly differentiates the two operating modes and states the default rate, making it unambiguous among the large sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly explains when to use the tool: when you need to add VAT to a net amount or remove it from a gross amount. It does not explicitly name alternatives or exclusion scenarios, but the context is strong enough for an agent to select it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_vigenere_cipherVigenere cipherA
Read-onlyIdempotent
Inspect

Encode or decode text with the classic Vigenere cipher using a keyword. Each letter is shifted by the matching keyword letter (A is 0 to Z is 25), the keyword repeating across the message. Only A to Z letters are changed and case is preserved; numbers, spaces and punctuation pass through unchanged and do not advance the keyword. The keyword uses only its letters. Decoding reverses the shift. Source: https://hopi.co.uk/vigenere-cipher/

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesThe keyword (only its A to Z letters are used)
modeNo'encode' to apply the cipher, 'decode' to reverse it (default encode)encode
textYesThe text to transform

Output Schema

ParametersJSON Schema
NameRequiredDescription
outputYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the readOnly/idempotent annotations by explaining the shift mapping, keyword repetition, case preservation, pass-through of non-letters, and the fact that non-letters do not advance the keyword. This is exactly the behavioral detail an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, then expands into the few algorithmic details that matter. Every sentence contributes useful information, and the source link is a harmless addition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-algorithm transform tool, the description covers all necessary context: operation, keyword semantics, character handling, and decode behavior. Since an output schema exists, not detailing the return shape is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema already covers all three parameters, the description adds meaningful semantics: how the keyword repeats, how letters map to shifts, how non-letters are handled, and how decoding reverses the process. This is valuable beyond the schema's short field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the exact operation (encode or decode) and the exact algorithm (classic Vigenere cipher using a keyword). This is specific enough to distinguish it from cipher siblings like hopi_caesar_cipher and hopi_cipher_identifier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the algorithm name and behavior; there is no explicit statement of when to choose this tool over an alternative such as Caesar cipher. An agent can infer the use case, but the description does not provide explicit routing or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_volume_converterVolume converterA
Read-onlyIdempotent
Inspect

Convert a volume from one unit to another. Units: ml (millilitres), l (litres), ukpt (UK pints), ukgal (UK gallons), usgal (US gallons), ukfloz (UK fluid ounces), usfloz (US fluid ounces), m3 (cubic metres). Source: https://hopi.co.uk/volume-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe volume value to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
fromNo
valueNo
resultNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the unit list and source link but no extra behavioral traits such as rounding, precision, or error handling. With annotations covering the key behaviors, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence followed by a list of units and a source URL. It front-loads the core purpose and contains no redundant or verbose phrasing. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has a complete input schema, and an output schema is present. The description provides the unit list and conversion intent; nothing else is needed for an agent to invoke it correctly. Source link adds minor provenance value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for all three parameters (value, from, to), including descriptions and enums. The description repeats the unit list from the schema without adding new semantics like formatting, precision, or edge cases. Baseline 3 is correct when the schema carries the parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Convert a volume from one unit to another') and lists all supported units. The tool name and title reinforce the action. It is clearly distinct from other converter tools by specifying the volume domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (volume conversions) but does not explicitly mention alternatives or exclusions. Sibling converters exist (e.g., litres_to_pints, length_converter), but the domain is obvious from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_water_intake_calculatorDaily water intake calculatorA
Read-onlyIdempotent
Inspect

Estimate a rough daily fluid target from body weight, using 30 to 35 ml per kg, plus an activity add (sedentary 0, light 250, moderate 500, active 750, very_active 1000 ml) and 500 ml more for hot conditions. Use units 'metric' (weightKg) or 'imperial' (weightStone and weightPounds). Returns a low-to-high range in litres, millilitres and 250 ml glasses. Source: https://hopi.co.uk/water-intake-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
hotNoAdd 500 ml for hot conditions. Default false
unitsYes'metric' (kg) or 'imperial' (stone and pounds)
activityNoActivity level, default 'sedentary'sedentary
weightKgNoWeight in kilograms (metric)
weightStoneNoWhole stone part of weight (imperial)
weightPoundsNoPounds part of weight (imperial)

Output Schema

ParametersJSON Schema
NameRequiredDescription
lowMlYes
unitsYes
highMlYes
summaryYes
lowLitresYes
highLitresYes
lowGlassesYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
highGlassesYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses the underlying algorithm (30-35 ml/kg), the exact activity modifiers in ml, the 500 ml hot-weather adjustment, and the output format as a low-to-high range. This gives an agent a strong model of what the tool will return and how inputs affect it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description packs formula, activity values, hot adjustment, unit selection, and output units into a compact, front-loaded block. The source URL is slightly extra but useful and does not bloat the text materially.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations declaring the tool read-only and safe, the description covers the calculation logic, all relevant parameters, unit choices, and output units. Nothing an agent needs to invoke and interpret the result correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds real meaning by connecting the units enum to the weight fields ('metric' uses weightKg, 'imperial' uses weightStone and weightPounds) and by spelling out the ml values behind each activity level. It doesn't fully explain unit conversion details, but it goes beyond the schema's plain field labels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Estimate a rough daily fluid target from body weight') and gives the exact calculation basis, so an agent can identify exactly what the tool computes. It clearly distinguishes this from the many other calculator siblings by naming the formula and outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the use case unmistakable: compute daily fluid intake from body weight, with metric or imperial units and optional adjustments. It doesn't explicitly name alternatives or exclusions, but among the siblings there is no competing hydration tool, so clear context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_week_numberWhat week number is it?A
Read-onlyIdempotent
Inspect

Find the ISO 8601 week number for a date. Dates use the YYYY-MM-DD format and default to today. ISO weeks run Monday to Sunday and week 1 holds the year's first Thursday. Returns the week number, ISO year, and the Monday and Sunday of that week. Source: https://hopi.co.uk/week-number/

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date in YYYY-MM-DD format (defaults to today)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateNo
weekNo
isoYearNo
summaryYes
weekEndNo
weekStartNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds meaningful context by explaining the ISO week definition (Monday to Sunday, week 1 has the first Thursday) and exactly what is returned (week number, ISO year, Monday/Sunday). This goes beyond the annotations and helps the agent interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences plus a source link, with zero fluff. The key action and the most critical parameter details (format and default) are front-loaded, and the explanatory ISO rules are concise and relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one optional parameter) and has an output schema, so the description need not detail return structure. Yet it still mentions the return values, provides the date format, and explains the ISO convention. It is complete for an agent to use correctly without further investigation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'date' parameter, and the description repeats that format/default information without adding new details. Per the baseline rule, a score of 3 is appropriate when the schema already fully documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the specific verb 'Find' and the resource 'ISO 8601 week number for a date', clearly stating what the tool does. It is distinct from sibling date tools like hopi_day_of_week_calculator and hopi_days_between_dates by naming the ISO week number concept directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the input format (YYYY-MM-DD) and that it defaults to today, giving the agent the context needed to call it correctly. It doesn't explicitly compare to alternatives, but the tool's purpose is narrow and no sibling performs the same function, so the implied usage is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_weight_converterWeight converterA
Read-onlyIdempotent
Inspect

Convert a weight from one unit to another. Units: g (grams), kg (kilograms), oz (ounces), lb (pounds), st (stone). Source: https://hopi.co.uk/weight-converter/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesUnit to convert to
fromYesUnit to convert from
valueYesThe weight value to convert

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
fromNo
valueNo
resultNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a source URL but does not disclose additional behavioral details such as rounding behavior or precision. There is no contradiction, but the description contributes little beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the core purpose, and lists the supported units compactly. The source URL is a minor extra but does not bloat the description. Every sentence serves a clear informative purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, pure conversion tool with complete schema descriptions, full parameter enums, an output schema, and safety annotations, nothing essential is missing. The description, schema, and annotations together give the agent everything needed to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema descriptions are fully present with enums, but the schema only says 'Unit to convert from/to' without expanding abbreviations. The description adds value by mapping g, kg, oz, lb, and st to grams, kilograms, ounces, pounds, and stone, which helps the agent understand the parameter values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Convert a weight from one unit to another', followed by the exact supported units. This clearly identifies the tool as a general weight converter and implicitly distinguishes it from length, area, volume, and other converter siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this tool for weight conversions among g, kg, oz, lb, and st. It does not explicitly mention alternatives like hopi_kg_to_stone or state when not to use the tool, but for a simple converter the usage conditions are evident and no exclusions are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_wheel_spinnerWheel spinnerA
Read-onlyIdempotent
Inspect

Spin a wheel of names or options and pick one at random. Every item has an equal chance. Returns the chosen item. Source: https://hopi.co.uk/wheel-spinner/

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesThe list of names or options on the wheel (at least two)

Output Schema

ParametersJSON Schema
NameRequiredDescription
indexNo
winnerNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description carries a lower burden. It adds valuable behavioral context by stating that every item has an equal chance and that the chosen item is returned, clarifying that results vary across calls despite the read-only and idempotent annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the core action, and adds only the essential behavioral guarantee and return value. The source URL is minor but does not bloat the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with a well-defined input schema, output schema, and annotations, the description covers purpose, randomness, equal chance, and return behavior. Nothing necessary for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single items parameter is fully documented in the schema with type, min/max constraints, and a description, so schema coverage is 100%. The description only rephrases items as 'names or options' and does not add meaningful per-parameter detail, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: spinning a wheel of names or options and randomly selecting one. It also specifies the uniform probability and return value, which helps differentiate it from sibling randomizers like coin_flip, dice_roller, or random_number_generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for uniformly random selection from a user-supplied list, but it does not explicitly say when to prefer this tool over siblings such as yes_no_wheel, spin_the_bottle, or random_team_generator. No alternatives or exclusions are mentioned, so guidance remains only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_word_counterWord counterA
Read-onlyIdempotent
Inspect

Analyse a block of text and return the word count, character count (with and without spaces), sentence count, paragraph count and an estimated reading time at 225 words per minute. Source: https://hopi.co.uk/word-counter/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to analyse

Output Schema

ParametersJSON Schema
NameRequiredDescription
wordsNo
summaryYes
sentencesNo
charactersNo
paragraphsNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
readingTimeNo
charactersNoSpacesNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this as read-only, idempotent, and non-destructive. The description adds useful behavioral detail beyond that, including the exact reading-time assumption of 225 words per minute and the specific set of counts returned, which is more than the structured fields convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that clearly states the action and outputs. The source URL adds provenance but is not operationally necessary for an agent invoking the tool, preventing a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, one parameter, rich annotations, and existing output schema, the description covers everything an agent needs: what input to provide, what analyses are performed, and the specific outputs returned. No critical operational detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single 'text' parameter described as 'The text to analyse'. The description's phrase 'block of text' adds no significant semantic detail beyond the schema, so the high-coverage baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Analyse') and resource ('a block of text'), then enumerates the exact return metrics: word count, character counts, sentence count, paragraph count, and reading time. This output list distinguishes it from sibling tools like hopi_character_counter and hopi_reading_time_calculator, which focus on single metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for analysing a block of text, but it gives no explicit guidance on when to choose this tool over its siblings, such as hopi_character_counter or hopi_reading_time_calculator. There are no stated exclusions, prerequisites, or alternative-routing conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_word_frequency_counterWord frequency counterA
Read-onlyIdempotent
Inspect

Count how often each word appears in a block of text, sorted from most to least frequent. Returns the total word count, the number of unique words, and the top 20 words with their counts and percentages. Common stop words (the, and, of, ...) can optionally be ignored. Source: https://hopi.co.uk/word-frequency-counter/

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to analyse
ignoreStopwordsNoIgnore common words such as the, and, of, to (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
topNo
totalNo
uniqueNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and idempotentHint, and the description adds behavioral details: it returns total word count, unique words, top 20 with counts and percentages, and sorting order. This goes beyond the annotations and gives a clear picture of what the tool outputs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loads the purpose, and provides specific return details. It includes a source link which is not clutter. Every sentence contributes useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with a clear return contract and an output schema present, the description is complete. It covers what the tool does, what it returns, and the optional stop-word behavior. Nothing essential is missing for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are documented. The description's mention of stop words largely repeats the schema's description. It adds minimal extra meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool counts word frequency in a block of text, sorted by frequency, and returns specific metrics. It uses a specific verb 'Count' and resource 'word frequency', and distinguishes itself from sibling tools like hopi_word_counter by emphasizing the frequency distribution and top-20 output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: it's for analyzing word frequencies. It does not explicitly mention alternatives or when not to use it, but it provides enough context for an agent to understand its purpose. The optional stop-word filtering is mentioned, but no explicit routing to siblings is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_working_days_calculatorWorking days calculatorA
Read-onlyIdempotent
Inspect

Count the working days (Monday to Friday) between two dates, inclusive of both ends, optionally excluding England and Wales bank holidays. Dates use the YYYY-MM-DD format. Bank holiday data covers 2026 and 2027 only, so outside those years just weekends are excluded. Source: https://hopi.co.uk/working-days-calculator/

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesEnd date in YYYY-MM-DD format
fromYesStart date in YYYY-MM-DD format
bankHolidaysNoExclude England and Wales bank holidays as well as weekends (default true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
toNo
fromNo
summaryYes
swappedNo
completeNo
warningsNo
totalDaysNo
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
weekendDaysNo
workingDaysNo
bankHolidaysNo
holidayCoverageNo
bankHolidaysExcludedNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, establishing a safe, non-mutating operation. The description adds valuable behavioral context beyond annotations: dates are inclusive of both ends, only England and Wales bank holidays are considered, and the bank holiday dataset is limited to 2026–2027, outside which only weekends are excluded. This information meaningfully affects results and is not available from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core action in the first sentence and important caveats following. Every sentence contributes useful information, though the source URL is auxiliary rather than essential for invocation. Overall it is appropriately sized and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core inputs, date format, inclusivity, bank holiday behavior, and the critical 2026–2027 data limitation. With an output schema present, return value details are not required. It does not specify behavior for reversed dates or invalid input, but that is a minor gap given the schema and simple nature of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented with names and descriptions. The description adds semantic value by clarifying 'inclusive of both ends' and the bank holiday data limitation, which affect how the 'from', 'to', and 'bankHolidays' parameters should be interpreted. It also reinforces the YYYY-MM-DD format required by the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Count', and a precise resource, 'working days (Monday to Friday) between two dates', making the tool's purpose immediately clear. It also states key scope details—inclusive of both ends and optional bank holiday exclusion—which distinguishes it from related siblings like hopi_days_between_dates. The name, title, and description align.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly sets the context: use this calculator when you need working days between two dates, with optional bank holiday exclusion. It does not explicitly name alternatives or exclusion conditions, but the 'working days' focus and bank holiday option sufficiently guide an agent. The 2026–2027 data coverage caveat prevents incorrect use for other years.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_would_you_rather_generatorWould you rather and icebreaker generatorA
Read-onlyIdempotent
Inspect

Draw original, family-friendly would-you-rather pairs, open icebreaker questions or rapid-fire this-or-that pairs, optionally filtered by category. Would-you-rather categories: silly, food, travel, work, deep, kids. Icebreaker categories: work, party, deep, kids. This-or-that has no categories. Returns distinct items drawn at random. Source: https://hopi.co.uk/would-you-rather-generator/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesWhich list to draw from
countNoHow many to draw, 1 to 20 (default 1)
categoryNoOptional category filter (would-you-rather: silly, food, travel, work, deep, kids; icebreaker: work, party, deep, kids). Omit for all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
countYes
itemsYes
summaryYes
categoryYes
poolSizeYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that: results are drawn at random, items are distinct, content is family-friendly, and the source is cited. This gives the agent a good sense of expected output behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core purpose in the first sentence. The category breakdown is structured and easy to parse, and the source line provides provenance without bloating the text. Every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only generator with a full input schema and an output schema, the description covers all essential choices: mode, category applicability, randomness, distinctness, and content tone. There is no missing information that would prevent an agent from selecting or invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all three parameters completely, including enums, defaults, ranges, and category lists, so the baseline is 3. The description adds marginal value by repeating category options and noting that this-or-that has no categories, but it does not add significant semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear, specific purpose: drawing would-you-rather pairs, icebreaker questions, or this-or-that pairs, with optional category filtering. It distinguishes this tool from the many other hopi generators by naming its exact content types and scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly establishes when to use the tool—when the user wants original, family-friendly conversation prompts or icebreakers—and even explains which categories apply to which mode. It does not explicitly name alternative tools or exclusion cases, but the use context is strong and unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_yes_no_wheelYes or noA
Read-onlyIdempotent
Inspect

Get a random yes or no decision, with an optional maybe. Returns the answer. Source: https://hopi.co.uk/yes-no-wheel/

ParametersJSON Schema
NameRequiredDescriptionDefault
allowMaybeNoInclude 'maybe' as a possible answer (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYes
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavior beyond the annotations by stating the result is random, that 'maybe' can be included, and that the output is the answer. Annotations already cover the read-only, non-destructive, idempotent nature, so the description does not need to repeat that safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the core purpose, and ends with the return value. The source URL is somewhat extraneous for an agent selecting the tool, but it does not significantly dilute the message.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter, a clear output statement, a read-only annotation set, and an output schema, the description covers everything an agent needs to decide and invoke correctly. No required context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the allowMaybe parameter is already fully documented in the schema. The description's 'optional maybe' is consistent but does not add new semantic detail beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: 'Get a random yes or no decision, with an optional maybe.' It identifies a specific verb, resource, and output. It does not explicitly name or contrast sibling tools like hopi_coin_flip or hopi_magic_8_ball, but the yes/no scope is specific enough to be unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied: this is the tool for random yes/no decisions, optionally including 'maybe.' However, there is no explicit guidance on when to choose it over similar random-decision siblings such as hopi_magic_8_ball, hopi_coin_flip, or hopi_fortune_cookie.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hopi_zero_width_text_hiderZero-width text hiderA
Read-onlyIdempotent
Inspect

Hide a secret message inside ordinary text using invisible zero-width Unicode characters, reveal a message hidden that way, or clean zero-width characters out of text. Mode 'hide' takes cover and secret (optional spread to distribute the invisible run between words) and returns the output text plus the number of invisible characters added (UTF-8 bytes x 4 + 1 end marker). Mode 'reveal' takes text and returns the decoded message, or an error if nothing is hidden. Mode 'clean' takes text and strips U+200B, U+200C, U+200D, U+2060, U+FEFF, U+180E and U+00AD, reporting how many were removed. This is hiding, not encryption. Source: https://hopi.co.uk/zero-width-text-hider/

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYeshide, reveal or clean
textNoReveal and clean modes: the text to inspect
coverNoHide mode: the visible cover text that carries the message
secretNoHide mode: the message to hide
spreadNoHide mode: distribute the invisible run evenly between words instead of placing it after the first word

Output Schema

ParametersJSON Schema
NameRequiredDescription
outputNo
summaryYes
source_urlYesThe tool's page on hopi.co.uk (cite or open to check the figure)
invisibleCountNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the readOnlyHint and idempotentHint annotations by disclosing exact behavioral details: the character count formula for hidden output, the error behavior when reveal finds nothing, the full list of Unicode characters cleaned, and the fact that removed characters are reported. It also clarifies the important security caveat that hiding is not encryption, which is valuable for agent judgment.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense: it opens with the core purpose, then organizes details by mode without wasted words. Every sentence adds functional value, including the character list, output behavior, and the encryption caveat. The source URL is a minor extra, but not distracting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three modes, five parameters, and an output schema, the description is fully complete. It covers all mode-specific inputs, outputs, error cases, and edge-case behavior such as the spread option and specific Unicode characters. The presence of an output schema means return-value details do not need to be repeated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces which parameters apply to which mode and mentions the optional nature of spread, but it does not add meaning beyond what the schema already provides. This is a fair baseline because the schema itself is well-documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs (hide, reveal, clean) tied to a precise resource: zero-width Unicode characters in text. It clearly distinguishes this tool from the large family of text utilities by naming the exact behavior and the three modes. Each mode is explicitly described, so an agent can identify the tool's purpose without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use each of the three modes and even states 'This is hiding, not encryption,' which helps an agent avoid conflating it with encryption tools. It does not explicitly name alternative sibling tools or state when not to use this tool, but the mode-driven explanations make usage selection straightforward.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 202 tool updates
    • Changedhopi_add_working_days4 fields changed
      • addedOutput schema / properties / complete
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / holidayCoverage
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / warnings
        Added value: +{
        +  "type": "array"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_age_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_alcohol_unit_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "abv",
        +  "ml",
        +  "source_url",
        +  "summary",
        +  "units"
        +]
    • Changedhopi_alphabetical_order1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "caseInsensitive",
        +  "direction",
        +  "lines",
        +  "result",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_angle_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "from",
        +  "result",
        +  "source_url",
        +  "summary",
        +  "to",
        +  "value"
        +]
    • Changedhopi_area_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "from",
        +  "result",
        +  "source_url",
        +  "summary",
        +  "to",
        +  "value"
        +]
    • Changedhopi_aspect_ratio_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "ratio",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_average_calculator2 fields changed
      • addedOutput schema / properties / modeValues / type
        Added value: +[
        +  "array",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "count",
        +  "max",
        +  "mean",
        +  "median",
        +  "min",
        +  "mode",
        +  "modeValues",
        +  "source_url",
        +  "sum",
        +  "summary"
        +]
    • Changedhopi_base32_encoder1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "output",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_base641 field changed
      • addedOutput schema / required
        Added value: +[
        +  "input",
        +  "mode",
        +  "output",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_bill_splitter2 fields changed
      • changedOutput schema / properties / perPerson / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "object"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "grandTotal",
        +  "mode",
        +  "perPerson",
        +  "source_url",
        +  "summary",
        +  "tipPercent"
        +]
    • Changedhopi_bingo_card_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "cards",
        +  "count",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_bitcoin_address_validator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary",
        +  "valid"
        +]
    • Changedhopi_bmi_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "bmi",
        +  "category",
        +  "source_url",
        +  "summary",
        +  "units"
        +]
    • Changedhopi_body_fat_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "bodyFatPercent",
        +  "category",
        +  "sex",
        +  "source_url",
        +  "summary",
        +  "units"
        +]
    • Changedhopi_caesar_cipher1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "result",
        +  "shift",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_cagr_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_calories_to_kj1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "kcal",
        +  "kj",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_case_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "result",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_cat_age_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_celsius_to_fahrenheit1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "celsius",
        +  "direction",
        +  "fahrenheit",
        +  "kelvin",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_character_counter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_cipher_identifier1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "candidates",
        +  "chain",
        +  "plaintext",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_cm_to_feet1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "cm",
        +  "direction",
        +  "feet",
        +  "inches",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_cmyk_to_rgb1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_coin_flip1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "count",
        +  "heads",
        +  "results",
        +  "source_url",
        +  "summary",
        +  "tails"
        +]
    • Changedhopi_colour_name_finder1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_colour_palette_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_colour_picker1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_colour_shades_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_combination_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_compound_interest_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "finalBalance",
        +  "interestEarned",
        +  "monthly",
        +  "months",
        +  "principal",
        +  "rate",
        +  "source_url",
        +  "summary",
        +  "totalPaidIn",
        +  "years"
        +]
    • Changedhopi_contrast_checker1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_cron_expression_parser1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "dayOfMonth",
        +  "dayOfWeek",
        +  "english",
        +  "expression",
        +  "hour",
        +  "minute",
        +  "month",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_crypto_profit_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "breakeven",
        +  "breakevenString",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_css_gradient_generator2 fields changed
      • changedOutput schema / properties / angle / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "angle",
        +  "css",
        +  "gradient",
        +  "source_url",
        +  "summary",
        +  "type"
        +]
    • Changedhopi_css_minifier1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_csv_to_json1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_cups_to_grams1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_currency_converter5 fields changed
      • addedOutput schema / properties / asOfUnix / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • addedOutput schema / properties / complete
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / rateAgeHours
        Added value: +{}
      • addedOutput schema / properties / warnings
        Added value: +{
        +  "type": "array"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_data_size_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "binary",
        +  "from",
        +  "result",
        +  "source_url",
        +  "summary",
        +  "to",
        +  "value"
        +]
    • Changedhopi_date_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "amount",
        +  "date",
        +  "direction",
        +  "result",
        +  "resultLong",
        +  "source_url",
        +  "summary",
        +  "unit",
        +  "weekday"
        +]
    • Changedhopi_day_of_week_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_day_rate_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "dayRate",
        +  "mode",
        +  "source_url",
        +  "summary",
        +  "weekly",
        +  "workingDays"
        +]
    • Changedhopi_days_between_dates1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "days",
        +  "from",
        +  "inclusive",
        +  "remainderDays",
        +  "source_url",
        +  "summary",
        +  "swapped",
        +  "to",
        +  "weekdays",
        +  "weeks"
        +]
    • Changedhopi_days_until_christmas1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_dca_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "averageCost",
        +  "averageCostString",
        +  "buys",
        +  "coinsAcquired",
        +  "coinsAcquiredString",
        +  "source_url",
        +  "summary",
        +  "totalInvested",
        +  "totalInvestedString"
        +]
    • Changedhopi_dice_roller1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "highest",
        +  "lowest",
        +  "quantity",
        +  "results",
        +  "sides",
        +  "source_url",
        +  "summary",
        +  "total"
        +]
    • Changedhopi_diff_checker1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_discount_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "price",
        +  "saving",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_dog_age_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_download_time_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_due_date_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_dummy_data_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_email_link_generator2 fields changed
      • addedOutput schema / properties / warning / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_emoji_remover1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_energy_cost_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_env_to_json1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "output",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_eth_address_checksum1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary",
        +  "valid"
        +]
    • Changedhopi_eth_unit_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "eth",
        +  "ethPretty",
        +  "gwei",
        +  "gweiPretty",
        +  "source_url",
        +  "summary",
        +  "wei",
        +  "weiPretty"
        +]
    • Changedhopi_euromillions_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_event_wine_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Removedhopi_file_encrypter
    • Changedhopi_fortune_cookie1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_fraction_calculator2 fields changed
      • addedOutput schema / properties / mixed / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "decimal",
        +  "denominator",
        +  "mixed",
        +  "numerator",
        +  "op",
        +  "result",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_fraction_to_decimal1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "decimal",
        +  "denominator",
        +  "exact",
        +  "mode",
        +  "numerator",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_fuel_cost_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_hash_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_hash_identifier1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "candidates",
        +  "charset",
        +  "length",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_heart_rate_zones2 fields changed
      • addedOutput schema / properties / restingHeartRate / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "age",
        +  "maxHeartRate",
        +  "method",
        +  "restingHeartRate",
        +  "source_url",
        +  "summary",
        +  "zones"
        +]
    • Changedhopi_hex_to_rgb1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "hsl",
        +  "hslString",
        +  "rgb",
        +  "rgbString",
        +  "source_url",
        +  "summary"
        +]
    • Removedhopi_hmac_generator
    • Changedhopi_holiday_entitlement_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "cappedAt28",
        +  "daysPerWeek",
        +  "entitlementDays",
        +  "entitlementWeeks",
        +  "months",
        +  "partYear",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_hourly_to_salary1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "hourlyRate",
        +  "hoursPerWeek",
        +  "mode",
        +  "source_url",
        +  "summary",
        +  "weekly"
        +]
    • Changedhopi_hours_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "breakMinutes",
        +  "decimalHours",
        +  "end",
        +  "grossMinutes",
        +  "overnight",
        +  "source_url",
        +  "start",
        +  "summary",
        +  "worked",
        +  "workedMinutes"
        +]
    • Changedhopi_hsl_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "hex",
        +  "hslString",
        +  "mode",
        +  "rgbString",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_html_escape1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "input",
        +  "mode",
        +  "output",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_http_status_codes1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_iban_validator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "country",
        +  "length",
        +  "mode",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_ics_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "allDay",
        +  "bytes",
        +  "filename",
        +  "ics",
        +  "source_url",
        +  "summary",
        +  "title"
        +]
    • Removedhopi_image_steganography
    • Changedhopi_inflation_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "adjustedValue",
        +  "amount",
        +  "mode",
        +  "source_url",
        +  "summary",
        +  "totalChangePercent"
        +]
    • Changedhopi_json_formatter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "output",
        +  "source_url",
        +  "summary",
        +  "valid"
        +]
    • Changedhopi_json_to_csv1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_json_to_typescript1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary",
        +  "typescript"
        +]
    • Changedhopi_json_yaml_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_jwt_decoder3 fields changed
      • addedOutput schema / properties / exp / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • addedOutput schema / properties / nbf / type
        Added value: +[
        +  "number",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Removedhopi_jwt_generator
    • Changedhopi_kg_to_stone1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_leap_year_checker1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "divisibleBy100",
        +  "divisibleBy4",
        +  "divisibleBy400",
        +  "isLeapYear",
        +  "nextLeapYear",
        +  "previousLeapYear",
        +  "source_url",
        +  "summary",
        +  "year"
        +]
    • Changedhopi_length_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "from",
        +  "result",
        +  "source_url",
        +  "summary",
        +  "to",
        +  "value"
        +]
    • Changedhopi_litres_to_pints1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "direction",
        +  "litres",
        +  "source_url",
        +  "summary",
        +  "ukPints"
        +]
    • Changedhopi_loan_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "amount",
        +  "monthlyPayment",
        +  "months",
        +  "rate",
        +  "source_url",
        +  "summary",
        +  "totalInterest",
        +  "totalRepaid",
        +  "years"
        +]
    • Changedhopi_lorem_ipsum_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "count",
        +  "mode",
        +  "result",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_lottery_number_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "game",
        +  "lines",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_magic_8_ball2 fields changed
      • changedOutput schema / properties / question / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "answer",
        +  "question",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_margin_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_markdown_previewer1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_market_cap_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_meta_tag_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_miles_to_km1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "direction",
        +  "km",
        +  "miles",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_military_time_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "direction",
        +  "meridiem",
        +  "source_url",
        +  "summary",
        +  "time12",
        +  "time24"
        +]
    • Changedhopi_minutes_to_hours1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "clock",
        +  "decimalHours",
        +  "mode",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_moon_phase_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_morse_code_translator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "direction",
        +  "result",
        +  "source_url",
        +  "summary",
        +  "unknown"
        +]
    • Changedhopi_mortgage_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_mortgage_overpayment_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_mpg_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "direction",
        +  "kmPerLitre",
        +  "litresPer100km",
        +  "milesPerLitre",
        +  "source_url",
        +  "summary",
        +  "ukMpg",
        +  "usMpg"
        +]
    • Changedhopi_national_insurance_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_nato_phonetic_alphabet1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "direction",
        +  "result",
        +  "source_url",
        +  "summary",
        +  "unknown"
        +]
    • Changedhopi_net_to_gross1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "grossPerMonth",
        +  "grossPerYear",
        +  "incomeTax",
        +  "nationalInsurance",
        +  "net",
        +  "netCheckPerYear",
        +  "period",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_number_base_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "binary",
        +  "decimal",
        +  "fromBase",
        +  "hex",
        +  "octal",
        +  "result",
        +  "source_url",
        +  "summary",
        +  "toBase",
        +  "value"
        +]
    • Changedhopi_number_to_words1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "currency",
        +  "source_url",
        +  "summary",
        +  "words"
        +]
    • Changedhopi_oven_temperature_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "celsius",
        +  "fahrenheit",
        +  "fanCelsius",
        +  "gasMark",
        +  "scale",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_overtime_pay_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_password_strength_checker1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "bits",
        +  "crackTime",
        +  "label",
        +  "score",
        +  "source_url",
        +  "summary",
        +  "tips",
        +  "verdict"
        +]
    • Changedhopi_percentage_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "result",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_percentage_change_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_percentage_decrease_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_percentage_difference_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_percentage_increase_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_position_size_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_power_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_pressure_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_prime_factorisation_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "divisorCount",
        +  "divisors",
        +  "factorisation",
        +  "isPrime",
        +  "number",
        +  "primeFactors",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_pro_rata_salary_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_product_feed_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "currency",
        +  "errors",
        +  "items",
        +  "platform",
        +  "rowsRead",
        +  "skipped",
        +  "source_url",
        +  "summary",
        +  "xml"
        +]
    • Removedhopi_public_key_message_encrypter
    • Removedhopi_qr_code_reader
    • Changedhopi_random_colour_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_random_coordinates1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "points",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_random_letter_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "letters",
        +  "set",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_random_number_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "max",
        +  "min",
        +  "numbers",
        +  "source_url",
        +  "summary",
        +  "unique"
        +]
    • Changedhopi_random_team_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_random_word_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary",
        +  "words"
        +]
    • Changedhopi_ratio_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "a",
        +  "b",
        +  "mode",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_reading_time_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_redundancy_pay_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "age",
        +  "source_url",
        +  "summary",
        +  "total",
        +  "weeklyPay",
        +  "weeks",
        +  "years"
        +]
    • Changedhopi_remove_duplicate_lines1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_remove_extra_spaces1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_remove_line_breaks1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_reverse_text1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "result",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_rgb_to_hex1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_ring_size_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "circumferenceMm",
        +  "diameterMm",
        +  "mode",
        +  "source_url",
        +  "summary",
        +  "uk",
        +  "us"
        +]
    • Changedhopi_robots_txt_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "robotsTxt",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_roman_numerals_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "direction",
        +  "number",
        +  "roman",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_rounding_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "count",
        +  "formatted",
        +  "mode",
        +  "number",
        +  "rounded",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_running_pace_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "distance",
        +  "kph",
        +  "mode",
        +  "mph",
        +  "pacePerKm",
        +  "pacePerMile",
        +  "source_url",
        +  "summary",
        +  "time",
        +  "timeSeconds",
        +  "unit"
        +]
    • Changedhopi_satoshi_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "bits",
        +  "btc",
        +  "display",
        +  "mbtc",
        +  "mode",
        +  "sats",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_savings_goal_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "finalBalance",
        +  "interest",
        +  "mode",
        +  "months",
        +  "rate",
        +  "source_url",
        +  "start",
        +  "summary",
        +  "target",
        +  "totalPaidIn"
        +]
    • Changedhopi_schema_markup_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_scientific_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "angleMode",
        +  "expression",
        +  "formatted",
        +  "result",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_secret_santa_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_shoe_size_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_sleep_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "mode",
        +  "options",
        +  "source_url",
        +  "summary",
        +  "time"
        +]
    • Changedhopi_slot_machine_picker1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_slug_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_small_text_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "result",
        +  "source_url",
        +  "style",
        +  "summary"
        +]
    • Changedhopi_special_characters1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_speed_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "from",
        +  "result",
        +  "source_url",
        +  "summary",
        +  "to",
        +  "value"
        +]
    • Changedhopi_spin_the_bottle1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_sql_formatter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_staking_calculator2 fields changed
      • addedOutput schema / properties / compounding / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_stamp_duty_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "breakdown",
        +  "buyer",
        +  "effectiveRatePercent",
        +  "price",
        +  "source_url",
        +  "stampDuty",
        +  "summary"
        +]
    • Changedhopi_standard_deviation_calculator3 fields changed
      • changedOutput schema / properties / sampleStandardDeviation / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • changedOutput schema / properties / sampleVariance / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "count",
        +  "mean",
        +  "populationStandardDeviation",
        +  "populationVariance",
        +  "sampleStandardDeviation",
        +  "sampleVariance",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_star_sign_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_student_loan_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "addPostgraduate",
        +  "plan",
        +  "postgraduatePart",
        +  "repaymentPerMonth",
        +  "repaymentPerYear",
        +  "salary",
        +  "source_url",
        +  "summary",
        +  "undergraduatePart"
        +]
    • Changedhopi_take_home_pay_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "incomeTax",
        +  "nationalInsurance",
        +  "salary",
        +  "source_url",
        +  "summary",
        +  "takeHomePerMonth",
        +  "takeHomePerWeek",
        +  "takeHomePerYear"
        +]
    • Changedhopi_tarot_reader1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "majorCount",
        +  "positions",
        +  "reversedCount",
        +  "source_url",
        +  "spread",
        +  "spreadName",
        +  "summary"
        +]
    • Changedhopi_tdee_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "activity",
        +  "activityFactor",
        +  "age",
        +  "bmr",
        +  "gain",
        +  "loss",
        +  "mildLoss",
        +  "sex",
        +  "source_url",
        +  "summary",
        +  "tdee"
        +]
    • Changedhopi_test_card_number_generator2 fields changed
      • addedOutput schema / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "brand",
        +  "mode",
        +  "note",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_text_repeater1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_text_splitter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "blocks",
        +  "count",
        +  "mode",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_time_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_time_zone_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "dayDifference",
        +  "dayNote",
        +  "fromOffset",
        +  "fromZone",
        +  "onDstGap",
        +  "result",
        +  "resultLong",
        +  "source_url",
        +  "summary",
        +  "toOffset",
        +  "toZone"
        +]
    • Changedhopi_tip_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Removedhopi_totp_generator
    • Changedhopi_triangle_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "a",
        +  "angleA",
        +  "angleB",
        +  "area",
        +  "b",
        +  "c",
        +  "method",
        +  "perimeter",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_ucas_points_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "gradesCounted",
        +  "source_url",
        +  "summary",
        +  "totalPoints"
        +]
    • Changedhopi_unicode_inspector1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "characters",
        +  "codePoints",
        +  "source_url",
        +  "summary",
        +  "utf16Length",
        +  "utf8Bytes"
        +]
    • Changedhopi_unit_price_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "bestItem",
        +  "bestUnitPrice",
        +  "items",
        +  "mixedUnits",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_unix_timestamp_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_upside_down_text1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_url_encoder1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "action",
        +  "mode",
        +  "result",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_url_parser1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_user_agent_parser1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "bot",
        +  "browser",
        +  "device",
        +  "engine",
        +  "os",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_username_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary",
        +  "usernames"
        +]
    • Changedhopi_utm_link_generator2 fields changed
      • addedOutput schema / properties / warning / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_uuid_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_vat_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "gross",
        +  "mode",
        +  "net",
        +  "rate",
        +  "source_url",
        +  "summary",
        +  "vat"
        +]
    • Changedhopi_vigenere_cipher1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "output",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_volume_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_water_intake_calculator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "highGlasses",
        +  "highLitres",
        +  "highMl",
        +  "lowGlasses",
        +  "lowLitres",
        +  "lowMl",
        +  "source_url",
        +  "summary",
        +  "units"
        +]
    • Changedhopi_week_number1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_weight_converter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_wheel_spinner1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_word_counter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_word_frequency_counter1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_working_days_calculator4 fields changed
      • addedOutput schema / properties / complete
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / holidayCoverage
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / warnings
        Added value: +{
        +  "type": "array"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_would_you_rather_generator1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "category",
        +  "count",
        +  "items",
        +  "mode",
        +  "poolSize",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_yes_no_wheel1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "answer",
        +  "source_url",
        +  "summary"
        +]
    • Changedhopi_zero_width_text_hider1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "source_url",
        +  "summary"
        +]
  2. 202 tool updates
    • First observedhopi_add_working_days
    • First observedhopi_age_calculator
    • First observedhopi_alcohol_unit_calculator
    • First observedhopi_alphabetical_order
    • First observedhopi_angle_converter
    • First observedhopi_area_converter
    • First observedhopi_aspect_ratio_calculator
    • First observedhopi_average_calculator
    • First observedhopi_base32_encoder
    • First observedhopi_base64
    • First observedhopi_bill_splitter
    • First observedhopi_bingo_card_generator
    • First observedhopi_bitcoin_address_validator
    • First observedhopi_bmi_calculator
    • First observedhopi_body_fat_calculator
    • First observedhopi_caesar_cipher
    • First observedhopi_cagr_calculator
    • First observedhopi_calories_to_kj
    • First observedhopi_case_converter
    • First observedhopi_cat_age_calculator
    • First observedhopi_celsius_to_fahrenheit
    • First observedhopi_character_counter
    • First observedhopi_cipher_identifier
    • First observedhopi_cm_to_feet
    • First observedhopi_cmyk_to_rgb
    • First observedhopi_coin_flip
    • First observedhopi_colour_name_finder
    • First observedhopi_colour_palette_generator
    • First observedhopi_colour_picker
    • First observedhopi_colour_shades_generator
    • First observedhopi_combination_generator
    • First observedhopi_compound_interest_calculator
    • First observedhopi_contrast_checker
    • First observedhopi_cron_expression_parser
    • First observedhopi_crypto_profit_calculator
    • First observedhopi_css_gradient_generator
    • First observedhopi_css_minifier
    • First observedhopi_csv_to_json
    • First observedhopi_cups_to_grams
    • First observedhopi_currency_converter
    • First observedhopi_data_size_converter
    • First observedhopi_date_calculator
    • First observedhopi_day_of_week_calculator
    • First observedhopi_day_rate_calculator
    • First observedhopi_days_between_dates
    • First observedhopi_days_until_christmas
    • First observedhopi_dca_calculator
    • First observedhopi_dice_roller
    • First observedhopi_diff_checker
    • First observedhopi_discount_calculator
    • First observedhopi_dog_age_calculator
    • First observedhopi_download_time_calculator
    • First observedhopi_due_date_calculator
    • First observedhopi_dummy_data_generator
    • First observedhopi_email_link_generator
    • First observedhopi_emoji_remover
    • First observedhopi_energy_cost_calculator
    • First observedhopi_env_to_json
    • First observedhopi_eth_address_checksum
    • First observedhopi_eth_unit_converter
    • First observedhopi_euromillions_generator
    • First observedhopi_event_wine_calculator
    • First observedhopi_file_encrypter
    • First observedhopi_fortune_cookie
    • First observedhopi_fraction_calculator
    • First observedhopi_fraction_to_decimal
    • First observedhopi_fuel_cost_calculator
    • First observedhopi_hash_generator
    • First observedhopi_hash_identifier
    • First observedhopi_heart_rate_zones
    • First observedhopi_hex_to_rgb
    • First observedhopi_hmac_generator
    • First observedhopi_holiday_entitlement_calculator
    • First observedhopi_hourly_to_salary
    • First observedhopi_hours_calculator
    • First observedhopi_hsl_converter
    • First observedhopi_html_escape
    • First observedhopi_http_status_codes
    • First observedhopi_iban_validator
    • First observedhopi_ics_generator
    • First observedhopi_image_steganography
    • First observedhopi_inflation_calculator
    • First observedhopi_json_formatter
    • First observedhopi_json_to_csv
    • First observedhopi_json_to_typescript
    • First observedhopi_json_yaml_converter
    • First observedhopi_jwt_decoder
    • First observedhopi_jwt_generator
    • First observedhopi_kg_to_stone
    • First observedhopi_leap_year_checker
    • First observedhopi_length_converter
    • First observedhopi_litres_to_pints
    • First observedhopi_loan_calculator
    • First observedhopi_lorem_ipsum_generator
    • First observedhopi_lottery_number_generator
    • First observedhopi_magic_8_ball
    • First observedhopi_margin_calculator
    • First observedhopi_markdown_previewer
    • First observedhopi_market_cap_calculator
    • First observedhopi_meta_tag_generator
    • First observedhopi_miles_to_km
    • First observedhopi_military_time_converter
    • First observedhopi_minutes_to_hours
    • First observedhopi_moon_phase_calculator
    • First observedhopi_morse_code_translator
    • First observedhopi_mortgage_calculator
    • First observedhopi_mortgage_overpayment_calculator
    • First observedhopi_mpg_converter
    • First observedhopi_national_insurance_calculator
    • First observedhopi_nato_phonetic_alphabet
    • First observedhopi_net_to_gross
    • First observedhopi_number_base_converter
    • First observedhopi_number_to_words
    • First observedhopi_oven_temperature_converter
    • First observedhopi_overtime_pay_calculator
    • First observedhopi_password_strength_checker
    • First observedhopi_percentage_calculator
    • First observedhopi_percentage_change_calculator
    • First observedhopi_percentage_decrease_calculator
    • First observedhopi_percentage_difference_calculator
    • First observedhopi_percentage_increase_calculator
    • First observedhopi_position_size_calculator
    • First observedhopi_power_converter
    • First observedhopi_pressure_converter
    • First observedhopi_prime_factorisation_calculator
    • First observedhopi_pro_rata_salary_calculator
    • First observedhopi_product_feed_generator
    • First observedhopi_public_key_message_encrypter
    • First observedhopi_qr_code_reader
    • First observedhopi_random_colour_generator
    • First observedhopi_random_coordinates
    • First observedhopi_random_letter_generator
    • First observedhopi_random_number_generator
    • First observedhopi_random_team_generator
    • First observedhopi_random_word_generator
    • First observedhopi_ratio_calculator
    • First observedhopi_reading_time_calculator
    • First observedhopi_redundancy_pay_calculator
    • First observedhopi_remove_duplicate_lines
    • First observedhopi_remove_extra_spaces
    • First observedhopi_remove_line_breaks
    • First observedhopi_reverse_text
    • First observedhopi_rgb_to_hex
    • First observedhopi_ring_size_converter
    • First observedhopi_robots_txt_generator
    • First observedhopi_roman_numerals_converter
    • First observedhopi_rounding_calculator
    • First observedhopi_running_pace_calculator
    • First observedhopi_satoshi_converter
    • First observedhopi_savings_goal_calculator
    • First observedhopi_schema_markup_generator
    • First observedhopi_scientific_calculator
    • First observedhopi_secret_santa_generator
    • First observedhopi_shoe_size_converter
    • First observedhopi_sleep_calculator
    • First observedhopi_slot_machine_picker
    • First observedhopi_slug_generator
    • First observedhopi_small_text_generator
    • First observedhopi_special_characters
    • First observedhopi_speed_converter
    • First observedhopi_spin_the_bottle
    • First observedhopi_sql_formatter
    • First observedhopi_staking_calculator
    • First observedhopi_stamp_duty_calculator
    • First observedhopi_standard_deviation_calculator
    • First observedhopi_star_sign_calculator
    • First observedhopi_student_loan_calculator
    • First observedhopi_take_home_pay_calculator
    • First observedhopi_tarot_reader
    • First observedhopi_tdee_calculator
    • First observedhopi_test_card_number_generator
    • First observedhopi_text_repeater
    • First observedhopi_text_splitter
    • First observedhopi_time_calculator
    • First observedhopi_time_zone_converter
    • First observedhopi_tip_calculator
    • First observedhopi_totp_generator
    • First observedhopi_triangle_calculator
    • First observedhopi_ucas_points_calculator
    • First observedhopi_unicode_inspector
    • First observedhopi_unit_price_calculator
    • First observedhopi_unix_timestamp_converter
    • First observedhopi_upside_down_text
    • First observedhopi_url_encoder
    • First observedhopi_url_parser
    • First observedhopi_user_agent_parser
    • First observedhopi_username_generator
    • First observedhopi_utm_link_generator
    • First observedhopi_uuid_generator
    • First observedhopi_vat_calculator
    • First observedhopi_vigenere_cipher
    • First observedhopi_volume_converter
    • First observedhopi_water_intake_calculator
    • First observedhopi_week_number
    • First observedhopi_weight_converter
    • First observedhopi_wheel_spinner
    • First observedhopi_word_counter
    • First observedhopi_word_frequency_counter
    • First observedhopi_working_days_calculator
    • First observedhopi_would_you_rather_generator
    • First observedhopi_yes_no_wheel
    • First observedhopi_zero_width_text_hider

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    The most comprehensive everyday calculator MCP server — 501 tools across 22 categories covering 8 countries' tax systems (FR, BE, CH, CA, US, UK, MA, SN). Finance, health, math, science, construction, conversions, education, sport, cooking, travel, and more. Free, no API key required. Streamable HTTP transport.
    15
    18 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server providing 35 utility tools for AI agents including text analysis, encoding, hashing, password generation, JSON/CSV/XML parsing, regex, color, date, finance, URL metadata, SEO tags, DNS lookup, SSL inspection, and JWT decoding. Free, zero-dependency, and works with any MCP client.
    35
    45 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides deterministic micro-utilities as an MCP server, including free tools for conversion, text processing, hashing, encoding, ID generation, and regex, plus paid per-call tools for timezone, cron, RRULE, currency, diff, JSON Schema validation, and date math.
    13
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Public, no-login MCP server exposing SmartMoney77's financial calculators: compound interest, FIRE number, credit-card payoff, emergency fund, inflation, fees and the cost of waiting. Also computes historical "what if I had invested" returns from real yearly price data, and builds deep links and share packs for calculators in 6 localized editions.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources