Hopi
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.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 202 tools
Each tool has a clearly distinct purpose, from converters to generators to calculators, with no two tools doing the same job. Even closely related percentage tools differ by operation (increase, decrease, difference, change), and descriptions make the boundaries explicit.
All tool names follow a single consistent pattern: the 'hopi_' prefix followed by snake_case descriptive names. There is no mixing of styles, casing, or vague generic verbs—every name clearly reflects its function.
With 202 tools, the server is massively over-scoped for an MCP contextcars. The calibration guideline marks 50+ tools as an extreme mismatch, and this set is four times that size, overwhelming selection and prompt context despite each tool individually being simple.
Given the broad 'collection of online utilities' domain, the surface is remarkably complete: converters, calculators, generators, text tools, encoders, and validators cover most common needs. Minor gaps exist (e.g., no frequency converter, no generic time duration converter), but no core workflow is left as a dead end.
Available Tools
202 toolshopi_add_working_daysAdd working daysARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Number of working days to move (0 to 100000) | |
| start | Yes | Start date in YYYY-MM-DD format | |
| direction | No | 'add' to count forwards, 'sub' to count backwards (default 'add') | add |
| bankHolidays | No | Also skip England and Wales bank holidays, not just weekends (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | No | |
| start | No | |
| result | No | |
| summary | No | |
| weekday | No | |
| direction | No | |
| resultLong | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| daysSpanned | No | |
| bankHolidays | No | |
| holidaysSkipped | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, and non-destructive. The description adds valuable behavioral context beyond those annotations, including the Monday-to-Friday definition, the 2026-2027 bank holiday data limitation, and the fallback to weekends-only outside those years.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core operation, followed by format, scope, and source information. Every sentence contributes useful information with no filler or restatement of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema descriptions, helpful annotations, an output schema, and the description's caveat about bank holiday coverage, the tool is fully documented for correct invocation. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all parameters with 100% coverage, giving a baseline of 3. The description adds meaningful context by explaining the bank holiday limitation and how the tool behaves outside 2026-2027, which directly clarifies the bankHolidays parameter's real-world effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation: add or subtract a number of working days from a start date, optionally skipping bank holidays. It also states the date format and the holiday coverage period, making the tool's purpose unambiguous and distinguishable from related date calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the tool's context: modifying a start date by working days, optionally with England and Wales bank holidays. It does not explicitly name alternatives or exclusions, but the purpose is precise enough for an agent to select it among the many sibling date tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_age_calculatorAge calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| dob | Yes | Date of birth in YYYY-MM-DD format | |
| asOf | No | Optional date to measure the age at, in YYYY-MM-DD format (defaults to today) |
Output Schema
| Name | Required | Description |
|---|---|---|
| dob | No | |
| asOf | No | |
| days | No | |
| years | No | |
| months | No | |
| summary | No | |
| totalDays | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| nextBirthdayInDays | No | |
| nextBirthdayWeekday | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds behavioral context: it specifies the date format (YYYY-MM-DD), the optional 'as of' date defaulting to today, and the exact return values (years, months, days, total days, next birthday). This goes beyond the annotations and helps the agent understand what the tool computes and returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the core purpose, then provides format and output details, and ends with a source citation. Every sentence earns its place, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, 1 required, no nested objects) and has an output schema, so the description doesn't need to explain return structure. It covers the input format, the optional date, and the computed outputs. It could mention edge cases (e.g., leap years, future dates) but these are minor for a calculator tool with an output schema. Overall, it's complete enough 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.
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 (dob and asOf) with formats and defaults. The description reinforces the date format and the optional 'as of' date, but doesn't add significant new meaning beyond the schema. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Work out an exact age from a date of birth, as of today or an optional 'as of' date.' It specifies the resource (date of birth) and the output (age in years, months, days, total days lived, next birthday). This distinguishes it from sibling date-related tools like hopi_date_calculator or hopi_days_between_dates by focusing on age calculation from a DOB.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you need an exact age from a date of birth, optionally at a specific date. It doesn't explicitly exclude alternatives like hopi_date_calculator or hopi_days_between_dates, but the specific mention of 'age from a date of birth' and the output details provide clear context. It lacks explicit 'use this instead of X' guidance, but 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_alcohol_unit_calculatorAlcohol unit calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| ml | Yes | Volume of the drink in millilitres, e.g. 175 for a medium glass of wine | |
| abv | Yes | Alcohol by volume as a percentage, e.g. 12 for 12% wine | |
| drinksPerWeek | No | Optional number of these drinks per week, to work out a weekly units total |
Output Schema
| Name | Required | Description |
|---|---|---|
| ml | No | |
| abv | No | |
| units | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 behavioral context by specifying the calculation formula and the NHS guideline comparison, which goes beyond the schema and annotations, though it doesn't discuss edge cases or return format (which output schema covers).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly packed sentences that state the core purpose, formula, optional parameter, and guideline in a front-loaded manner. The source URL is the only extra element, but it's a single token and doesn't detract. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with an output schema and complete parameter documentation, the description appropriately covers the calculation methodached, optional weekly comparison, and the relevant guideline. An agent has everything needed to decide to call it and understand what it does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already well-documented in the schema. The description repeats the meaning of abv and ml in prose and mentions drinksPerWeek, but it does not add new semantic information beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Work out') with a precise resource ('UK alcohol units in a drink') and includes the exact formula, making the tool's function unmistakable. It also mentions the optional weekly total, adding further specificity. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: calculating UK alcohol units from ABV and volume, with an optional weekly comparison. However, it does not explicitly mention when not to use it or name alternative tools (e.g., hopi_event_wine_calculator), so it stops short of an explicit when-not/alternative statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_alphabetical_orderAlphabetical order sorterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to sort, one item per line | |
| direction | No | 'asc' for A to Z (default), 'desc' for Z to A | asc |
| caseInsensitive | No | Ignore letter case when sorting (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| lines | No | |
| result | No | |
| summary | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| caseInsensitive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds valuable extra behavior: blank lines are dropped, natural en-GB ordering is used, and numbers within lines sort sensibly. It also covers ascending/descending and case-insensitive modes. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short sentences with the main action front-loaded. It avoids filler and includes only relevant behaviors, though the source URL contributes little to tool selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the full input schema, rich annotations, and the presence of an output schema, the description covers the essential invocation details: line-based input, dropped blank lines, sort direction, case handling, and locale-aware ordering. Minor omissions like duplicate-line behavior are not critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents text, direction, and caseInsensitive with clear descriptions and defaults. The description mostly restates direction and case-insensitivity rather than adding new parameter-level meaning. The natural-ordering note is useful context but is more behavioral than parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Sort the lines of a block of text into alphabetical order.' It clearly distinguishes this tool from text-manipulation siblings like hopi_reverse_text, hopi_remove_duplicate_lines, and hopi_case_converter by naming the sorting behavior precisely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case — alphabetically sorting lines of text — but it never explicitly names alternatives or says when not to use this tool. There is a clear context for usage, but no routing or exclusions 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_angle_converterAngle converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to | |
| from | Yes | Unit to convert from | |
| value | Yes | The angle value to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| value | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 context beyond the unit list—no mention of precision, rounding, error handling, or any edge cases. Since annotations carry the safety information and the description adds nothing extra, a score of 2 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no fluff. The purpose is front-loaded, the units are listed compactly, and the source URL is a useful addition. Every sentence earns its place; there is no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, well-annotated tool with a complete input schema and an output schema present, the description covers the essential information: what it does, the units involved, and the source. It doesn't explain the return format, but that's already handled by the output schema. The only minor gap is the lack of any note on precision or edge cases, but for a basic converter this is not a significant omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all three parameters with descriptions, so the baseline is 3. The description adds meaningful semantic context by explaining the unit abbreviations: deg (degrees), rad (radians), grad (gradians), turn (full turns). This clarifies the enum values beyond what the schema provides, making the parameters more self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Convert an angle from one unit to another.' It lists the supported units (deg, rad, grad, turn), which makes the tool's scope unambiguous. It naturally distinguishes itself from sibling converters (e.g., length, area) by being angle-specific, so no confusion arises.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for any angle conversion but does not explicitly mention when not to use it or point to alternative tools (e.g., length_converter). Given the tool's narrow scope, the usage is self-evident, but there is no explicit guidance or exclusion, so it falls short of a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_area_converterArea converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to | |
| from | Yes | Unit to convert from | |
| value | Yes | The area value to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| value | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 only the supported units and a source URL, not additional behavioral traits such as rounding or conversion precision. This is acceptable but not notably enriching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action and resource. The unit list is directly relevant and expands abbreviated enum values, and the source URL is a single unobtrusive addition. No filler or repeated schema details beyond useful clarification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, deterministic conversion tool, the description plus the complete input schema, output schema, and read-only annotations cover everything an agent needs. The supported units are documented both in the description and the schema, and the output schema eliminates any need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds value by expanding the abbreviations (e.g., sqm is square metres, sqyd is square yards), which helps an agent understand the enum values beyond the bare abbreviations in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('convert') and resource ('an area'), then lists the supported units. This clearly distinguishes it from sibling converters such as length_converter, volume_converter, and weight_converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Convert an area from one unit to another' provides clear context for when to use this tool, and the unit list reinforces its scope. It does not explicitly name alternatives or state when not to use it, but the area focus makes the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_aspect_ratio_calculatorAspect ratio calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'simplify' a width and height, or 'solve' a missing side from a ratio | |
| width | No | Width in pixels or units (simplify mode, or the known side in solve mode) | |
| height | No | Height in pixels or units (simplify mode, or the known side in solve mode) | |
| ratioH | No | Ratio height part, e.g. 9 (solve mode) | |
| ratioW | No | Ratio width part, e.g. 16 (solve mode) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| ratio | No | |
| decimal | No | |
| nearest | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering safety. The description adds behavior beyond that by explaining the two modes and their outputs (simplified ratio, decimal ratio, nearest common ratio, missing side). It does not contradict annotations and provides useful contextual detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that front-load the core purpose and immediately explain both modes. It includes a source link without unnecessary fluff. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description is complete for an agent to select and invoke the tool correctly. It explains both modes, the inputs needed, and the outputs expected. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds meaning by tying parameters to modes (e.g., width/height for simplify, ratio plus one known side for solve). It clarifies a subtle requirement not fully captured in the schema's conditional required arrays, so it adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is an 'Aspect ratio helper' and explains the two modes ('simplify' and 'solve') with specific functions. It distinguishes itself by name and function, but does not explicitly contrast with sibling tools like hopi_ratio_calculator, so a slight dock for lack of differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternative siblings (e.g., hopi_ratio_calculator) or when not to use it. The description explains the modes but does not mention any exclusions or prerequisites, leaving the agent to infer from the name alone.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| numbers | Yes | A list of numbers separated by spaces, commas, semicolons or new lines |
Output Schema
| Name | Required | Description |
|---|---|---|
| max | No | |
| min | No | |
| sum | No | |
| mean | No | |
| mode | No | |
| count | No | |
| median | No | |
| summary | No | |
| modeValues | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool safe, read-only, and idempotent. The description adds meaningful behavioral detail beyond annotations, particularly the parsing rule that commas act as separators, so users should type 1200 instead of 1,200. It also cites the source, providing provenance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the tool's purpose, then immediately provide input formatting guidance and source attribution. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter calculator with an output schema and comprehensive safety annotations, the description covers all necessary aspects: what it computes, how to format input, and a key parsing caveat. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the numbers parameter. The description adds value beyond the schema by emphasizing the comma-separator pitfall and reinforcing accepted delimiters, which helps agents format input correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Work out' and clearly enumerates the outputs (mean, median, mode, sum, count, minimum, maximum) for a 'list of numbers'. This clearly distinguishes it from the many sibling calculators by specifying exactly which statistical measures are returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to use the tool, listing accepted separators and warning about comma-treated-as-separator behavior. It does not explicitly mention when not to use it or name alternatives, but the input guidance is sufficiently explicit for a single-parameter calculator.
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 decoderARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'encode' turns text into Base32, 'decode' turns Base32 back into text (default encode) | encode |
| text | Yes | The text to encode, or the Base32 string to decode |
Output Schema
| Name | Required | Description |
|---|---|---|
| output | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and idempotent annotations, it discloses the exact encoding algorithm (UTF-8 bytes into 5-bit groups, A-Z then 2-7, padding to multiples of 8 with equals signs) and decoding edge cases (lowercase tolerance, missing padding, invalid characters as errors). This is rich behavioral context an agent needs to predict results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences plus a source link, with the core purpose first, then encoding details, then decoding tolerances. No wasted words; every sentence adds technical precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's operation for both modes, including format rules and error behavior. An output schema exists, so return values need no explanation, and the safety profile is already covered by annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% since both mode and text have descriptions, so the baseline is 3. The description adds extra meaning by clarifying that input is UTF-8 text and decode tolerates imperfect Base32 input, which helps the agent understand what values to pass for the text parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Encode text to RFC 4648 Base32 or decode Base32 back to text,' giving a specific verb, resource, and direction. It clearly distinguishes this from the sibling hopi_base64 tool by naming the exact standard and alphabet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear functional context: use this tool for RFC 4648 Base32 encoding/decoding of text. It does not explicitly mention hopi_base64 as an alternative or state when not to use it, 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_base64Base64 encode & decodeARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'encode' text to Base64, or 'decode' Base64 back to text | |
| text | Yes | The text to encode, or the Base64 string to decode |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| input | No | |
| output | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=trueher. The description adds valuable behavioral context: 'UTF-8 safe, so accents and emoji survive the round trip' and 'Returns the converted text or a clear error.' This goes beyond the annotations and gives the agent insight into output behavior and encoding handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences cover the core functionebb, UTF-8 safety, and return behavior, with the source URL appended. Every sentence earns its place, and the main action is front-loaded. Slightly more detail than strictly needed, but no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required params, no nested objects, output schema present), the description covers the essential aspects: what it does, UTF-8 handling, and error behavior. The output schema handles return values, so no need to elaborate. Minor gaps like edge-case handling or size limits are absent but not critical for a conversion utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (mode with enum, and text) are clearly described in the input schema. The description does not add any parameter-level semantics beyond what the schema provides; the UTF-8 note is about overall behavior, not parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Encode text to Base64, or decode a Base64 string back to text' – a specific verb and resource. It doesn't explicitly distinguish from sibling tools like base32 or URL encoders, but the tool name and title already disambiguate the purpose, so confusion is unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: if an agent needs to Base64-encode or decode, this is the tool. However, there is no explicit guidance about when not to use it or alternatives (e.g., 'use hopi_base32_encoder for Base32'). The absence of exclusions is acceptable for a simple utility, 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_bill_splitterBill splitterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'itemised' splits by item and who had it; 'even' splits one total equally | |
| items | No | Itemised mode: each item with its amount and the names who shared it. An item with no names is shared by everyone. | |
| total | No | Even mode: the bill total before tip | |
| people | No | Itemised mode: names of the people sharing the bill | |
| tipPercent | No | Tip as a percentage (default 0) | |
| peopleCount | No | Even mode: number of people to split between | |
| servicePercent | No | Itemised mode: service charge as a percentage (default 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tip | No | |
| mode | No | |
| total | No | |
| summary | No | |
| perPerson | No | |
| grandTotal | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| tipPercent | No | |
| peopleCount | No |
TDQS
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 beyond the schema by explaining that tip and service charge are 'both percentages applied to each person's own share', clarifying that percentages are not applied to the whole bill. It also notes that amounts are in GBP, which is a meaningful addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, starting with the core purpose, then covering both modes, then the currency, and finally the source. No sentence is wasted, and the structure makes it easy to scan for the key decision between itemised and even modes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a conditional schema, 100% parameter coverage, an output schema, and full annotation coverage, the description covers the remaining essential context: mode selection, optional percentages applied per person, currency, and source. An agent has everything needed to invoke the tool correctly without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the field names by explaining mode-specific behavior: itemised mode maps to items with sharing, even mode maps to a total and people count, and tip/service are applied per person. The schema's field descriptions are mechanical, while the description ties them together into a workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Split a restaurant bill between people.' It then clearly distinguishes the two operating modes, 'itemised' and 'even', and the currency, which separates it from vague calculator siblings. An agent can tell exactly what this tool does and roughly how it differs from other calculator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear contextual usage for each mode: use 'itemised' for per-item attribution with optional tip and service charge, and use 'even' for splitting a single total equally. It does not explicitly name alternatives like hopi_tip_calculator or state when not to use this tool, but the mode guidance is enough for correct selection in most cases.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many cards to generate, 1 to 100 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cards | No | |
| count | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond those hints: it specifies the card layout, that blank squares are null, and the exact decade ranges per column. This is useful for parsing the output and does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no waste: the main action is front-loaded, the structural details are relevant and help define output, and the source URL adds provenance. The source line is optional but not distracting, making this efficiently concise rather than over-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with a single parameter and an output schema already present. The description thoroughly explains the card format (grid dimensions, number counts, column ranges, null handling), which is the main contextual information an agent needs. No critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the count parameter, so the schema already fully documents its range and default. The description only restates 'one or more' and explains card structure, adding no extra meaning to the count parameter 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Generate'), a specific resource ('UK 90-ball bingo cards'), and provides a detailed structural definition (3-row x 9-column grid, 15 numbers, 5 per row, column decades). This clearly distinguishes it from sibling generators like lottery_number_generator 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for bingo-card generation but gives no explicit when-to-use or when-not-to-use guidance, nor does it name alternative sibling tools. The UK 90-ball qualifier is useful context, but the agent is left to infer when this tool should be chosen over other random generators.
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 validatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The Bitcoin address to validate |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| valid | No | |
| network | No | |
| summary | No | |
| encoding | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 that: it validates checksum/structure, supports multiple address standards and networks, and explicitly avoids blockchain queries or balance checks. No annotation contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: core purpose first, then supported formats/networks, then limitations and source. 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.
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 documented output schema and clear annotations, the description is fully sufficient. It covers validation method, accepted formats, network scope, and exclusions, so an agent can decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'address' parameter at 100%, so baseline is 3. The description adds meaning by specifying which address formats and networks are accepted, helping the agent understand valid input beyond the schema's generic 'The Bitcoin address to validate'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Check whether a Bitcoin address is valid by verifying its checksum and structure.' It distinguishes itself from sibling validators by being explicitly Bitcoin-focused and enumerating supported address formats and networks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the tool's use case clear: validate a Bitcoin address. It also clarifies what it does not do ('Does not query the blockchain or check balances'), which prevents misuse. However, it does not explicitly name alternative sibling tools for non-Bitcoin address validation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_bmi_calculatorBMI calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| units | Yes | 'metric' (cm and kg) or 'imperial' (inches and pounds) | |
| heightCm | No | Height in centimetres (metric) | |
| weightKg | No | Weight in kilograms (metric) | |
| heightInches | No | Total height in inches (imperial) | |
| weightPounds | No | Weight in pounds (imperial) |
Output Schema
| Name | Required | Description |
|---|---|---|
| bmi | No | |
| units | No | |
| summary | No | |
| category | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 behavioral detail by exposing the exact formula and the NHS weight category output, making the computation transparent. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the purpose first, then unit usage, then the formula, and finally the source. 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.
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 and an output schema available, the description covers the core calculation, the supported unit systems, the expected output category, and a source reference. 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.
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 real value by explicitly pairing units with their corresponding parameters and providing the formula that ties them together. This goes beyond the schema's per-parameter labels.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Work out body mass index (BMI) from height and weight' and adds the distinctive 'NHS weight category' output. It is clearly distinguishable from related sibling calculators like hopi_body_fat_calculator or hopi_tdee_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: whenever a BMI calculation is needed based on height and weight. It provides concrete context about the two unit systems and how to select them, though it does not explicitly mention alternatives or exclusions.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hip | No | Hip circumference, females only (cm if metric, inches if imperial) | |
| sex | Yes | Biological sex, determines the formula and whether hip is needed | |
| neck | Yes | Neck circumference (cm if metric, inches if imperial) | |
| units | Yes | 'metric' (cm) or 'imperial' (inches) | |
| waist | Yes | Waist circumference (cm if metric, inches if imperial) | |
| height | Yes | Height (cm if metric, inches if imperial) | |
| weight | No | Optional weight (kg if metric, pounds if imperial) for fat and lean mass |
Output Schema
| Name | Required | Description |
|---|---|---|
| sex | No | |
| units | No | |
| summary | No | |
| category | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| bodyFatPercent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds behavioral context by explaining the method (US Navy tape), the conditional requirement of hip for females, and the optional weight that yields fat and lean mass. It does not describe the return format, but the output schema presumably covers that. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded. It opens with the main purpose, then gives practical usage details, and ends with a source link. Every sentence contributes value; there is no redundancy or fluff. It is appropriately sized for a tool with 7 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a full output schema, the description does not need to explain return values. It covers the essential inputs, sex-specific requirements, unit options, and optional weight for additional outputs. The source link adds credibility and context. The description is complete for an agent to invoke the tool correctly without further research.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage with descriptions for every parameter, including units and the conditional requirement for hip. The description largely reiterates this information (e.g., 'for females give height, neck, waist and hip' and 'units metric or imperial'). It adds the US Navy method context, but that is not parameter-specific. The description adds little beyond what the schema already communicates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: estimating body fat percentage using the US Navy tape method. It is specific and unambiguous, and it stands apart from the many other calculators in the sibling list. The verb 'estimate' plus the resource 'body fat percentage' makes the purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage instructions: it specifies which measurements are needed for males vs females, which units to use, and the optional weight parameter for additional outputs. It does not explicitly mention alternatives or when not to use it, but given its specialized nature, the guidance is sufficient. The sex-specific requirements are clearly stated.
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 & ROT13ARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'encode' to apply the shift, 'decode' to reverse it (default encode) | encode |
| text | Yes | The text to transform | |
| shift | Yes | How many places to shift each letter (e.g. 3, or 13 for ROT13) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| shift | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 detail beyond that: only A-Z letters are changed, everything else is left as-is, and decoding applies the opposite shift. This informs the agent exactly what transformations occur, with no contradiction to annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the core purpose, and every sentence adds value: algorithm, alphabet handling, decode behavior, and a source reference. There is no fluff or redundant repetition of schema fields. It is appropriately concise for a simple utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward transformation tool with a rich schema and annotations, the description covers all essential aspects: what it does, how it handles non-letters, how decoding works, and the ROT13 special case. The output schema exists (though not shown), so return format need not be described. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters already have descriptions. The description adds extra meaning for 'shift' by stating 'a shift of 13 is ROT13' and clarifying that each letter moves along the alphabet. This provides context beyond the schema's terse 'How many places to shift each letter', enhancing the agent's understanding of valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Encode or decode') and resource ('text') with a clear algorithm ('Caesar shift cipher'), and it names the ROT13 special case, distinguishing it from sibling ciphers like Vigenère. This is unambiguous and easily separable from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when a Caesar shift or ROT13 is needed, and explains the behavior (shift letters, leave others). It does not explicitly name alternatives or exclusions, but the tool name and description make the intended use obvious, so it meets the 'clear context, no exclusions' bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_cagr_calculatorCAGR calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | Ending value | |
| start | Yes | Starting value (must be greater than zero) | |
| years | Yes | Number of years over the period (may be a fraction) |
Output Schema
| Name | Required | Description |
|---|---|---|
| end | No | |
| start | No | |
| years | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| cagrPercent | No | |
| growthMultiple | No | |
| shortPeriodWarning | No | |
| totalGrowthPercent | No |
TDQS
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 known. The description adds the output details (annual rate, total growth, growth multiple), which is useful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and returns. The source link is extra but not harmful. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (3 parameters, no nested objects, output schema present). The description covers what it does and what it returns, and annotations cover 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description loosely maps to the parameters ('starting value', 'ending value', 'number of years') but adds no extra meaning or edge-case guidance beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Work out') and a precise resource ('compound annual growth rate (CAGR)'), along with the inputs and outputs. Although it does not explicitly differentiate from siblings, the purpose is unambiguous and the name reinforces it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: an agent would use this when a CAGR calculation is needed. However, there is no explicit guidance on when not to use it or mention of alternatives (e.g., compound interest calculator). No exclusions are stated, so it stops at implied usage.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| unit | Yes | The unit of the amount: 'kcal' (kilocalories) or 'kj' (kilojoules) | |
| amount | Yes | The energy amount to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| kj | No | |
| kcal | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 meaningful behavioral details beyond annotations: the exact conversion factor and the fact that both converted values are returned. The source URL also adds provenance. This goes beyond what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: purpose and factor first, then usage and return behavior, then source. Every clause earns its place and 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.
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 an output schema present and annotations covering safety, the description covers the factor, input units, return behavior, and 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'amount' and 'unit' already described. The description's mention of valid unit values ('kcal' or 'kj') repeats the schema enum and adds no new param-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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Convert') and a precise resource ('food energy between kilocalories (kcal) and kilojoules (kJ)'). It also states the exact conversion factor (1 kcal = 4.184 kJ), which unambiguously distinguishes this from other unit 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly tells the agent what input to provide ('Give an amount and its unit') and what to expect ('returns both values'). It does not explicitly name alternatives or exclusions, but for a standalone converter with no near-identical sibling, this 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_case_converterCase converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | The target case | |
| text | Yes | The text to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld=false, and non-destructive, so the safety profile is fully covered. The description adds useful behavioral detail by defining exactly what 'title' and 'sentence' mean, which is not obvious from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main action, and uses a compact second sentence to define modes. The trailing source URL is not useful for invocation and slightly weakens conciseness, but it does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter pure transformation with an output schema and rich annotations, the description is complete. It defines both required parameters implicitly and covers the full enum semantics; no additional guidance is needed 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.
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 explaining each enum value with examples ('upper' is UPPERCASE, 'title' capitalises the first letter of each word), which materially helps an agent choose the correct mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Convert text to a different letter case.' It then enumerates the four supported modes, making the tool's scope precise and clearly separating it from text-transform siblings like reverse_text or slug_generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is stated plainly enough that an agent can infer when to use it: whenever text needs upper, lower, title, or sentence casing. It does not explicitly name alternatives or exclusions, but for a simple utility this is clear, non-misleading context.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| catAge | Yes | The cat's age in years (0 to 40) |
Output Schema
| Name | Required | Description |
|---|---|---|
| stage | No | |
| catAge | No | |
| summary | No | |
| humanYears | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe, read-only, idempotent behavior. The description adds meaningful non-annotation details: the exact conversion chart ('15, 24, then 4 a year'), the approximate nature of the result, and what outputs are returned. This goes beyond the structured metadata and is consistent with it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences plus a source link. The action, method, and outputs are all front-loaded, with no filler or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic one-parameter calculator with a full input schema, annotations, and an output schema, the description is complete: it states the input unit, the calculation rule, and what the tool returns. Nothing critical for calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% because the sole parameter catAge has its own description with units and bounds. The description repeats 'age in years' but does not add significantly more parameter-specific meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Convert a cat's age in years to an approximate human age.' It clearly identifies the domain, distinguishes this from dog/human age tools, and states what the tool returns (human-equivalent age and life stage).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly identifies the intended use case: cat-age conversion. It does not explicitly name alternatives like hopi_dog_age_calculator or hopi_age_calculator, but the cat-specific wording supplies enough routing context 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_celsius_to_fahrenheitTemperature converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The temperature value to convert | |
| direction | Yes | 'c-to-f' converts Celsius to Fahrenheit, 'f-to-c' converts Fahrenheit to Celsius |
Output Schema
| Name | Required | Description |
|---|---|---|
| kelvin | No | |
| celsius | No | |
| summary | No | |
| direction | No | |
| fahrenheit | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 meaningful behavioral detail beyond the schema: 'Also returns Kelvin,' which tells the agent the output includes this extra unit. This goes beyond what the input schema states and enriches the behavioral model without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. The main action is front-loaded, the direction instructions are clear, and the source URL is the only extra element, which adds credibility without bloat. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter converter with a full input schema and an output schema present, the description is complete. It conveys the conversion direction options, the extra Kelvin return, and a source reference. Nothing an agent needs to invoke this tool correctly is missing, and the output schema covers return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents both value and direction. The description reiterates the direction values ('c-to-f' and 'f-to-c') but adds no new semantic meaning beyond the schema. This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair ('Convert a temperature between Celsius and Fahrenheit') and immediately clarifies the two supported directions. The added detail that it also returns Kelvin and the explicit direction values distinguish it from generic temperature converters and any sibling such as the oven temperature converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear parameter-level instructions ('Set direction to 'c-to-f' or 'f-to-c') but does not explicitly discuss when to use this tool versus alternatives or when not to use it. Among the many sibling converters, there is no named alternative or exclusion, 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_character_counterCharacter counterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to measure |
Output Schema
| Name | Required | Description |
|---|---|---|
| words | No | |
| summary | No | |
| smsParts | No | |
| characters | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| tweetRemaining | No | |
| charactersNoSpaces | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and no destructive behavior. The description adds meaningful behavioral detail by specifying exactly which derived metrics will be returned (spaces removed, word count, SMS count, Twitter/X remaining) and the source URL. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient sentence front-loads the primary action and then lists the key outputs without waste. The source URL is useful provenance and takes minimal space. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one simple parameter, a rich output schema, and annotations covering safety and idempotence. The description's enumeration of outputs plus the source link makes it complete for an agent to decide and call correctly; 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'text' already described as 'The text to measure.' The tool description does not add any additional parameter-level meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Count') tied to a clear resource ('a block of text') and enumerates the exact outputs: character count, count without spaces, word count, SMS message count, and Twitter/X remaining out of 280. This fully differentiates it from sibling tools like hopi_word_counter and hopi_word_frequency_counter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use statements are given, but the detailed output list makes the tool's purpose unmistakable against similar text-measurement siblings. The context is clear enough for an agent to select it for character-centric counting, though alternatives are not named.
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-decoderARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The unknown text to identify and decode |
Output Schema
| Name | Required | Description |
|---|---|---|
| chain | No | |
| summary | No | |
| plaintext | No | |
| candidates | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, the description reveals important behavior: it returns ranked candidates with confidence scores, provides a decoded preview, and auto-decodes nested layers up to 8 deep while a step is at least 60% confident. It also discloses its limitation with keyed encryption, giving the agent accurate expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then states output behavior, auto-decoding rules, limitations, and source. The list of supported encodings is long but useful, and the entire description remains dense without fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers the input, recognized categories, output behavior, confidence threshold, nesting limit, and cryptographic limitation. The presence of an output schema means return-value details do not need to be spelled out, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and the schema already describes it well ('The unknown text to identify and decode'), so the description does not need to add much. The prose clarifies that the input is a piece of text, which is consistent with the schema but does not add substantive new meaning beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Identify'), a specific resource ('a piece of text'), and enumerates the exact encodings, ciphers, and data types it can recognize. It also clearly differentiates itself from sibling converters by framing itself as an identifier and auto-decoder rather than a straightforward encoder/decoder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is clear: use this when you have unknown text and want to identify its encoding or cipher. It also provides an explicit exclusion ('Cannot break keyed encryption such as AES'). However, it does not name specific alternatives like hopi_base64 or hopi_hash_identifier for cases where the encoding is already known.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| cm | No | Centimetres (for cm-to-feet) | |
| feet | No | Feet (for feet-to-cm) | |
| inches | No | Inches (for feet-to-cm, optional) | |
| direction | Yes | Which way to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| cm | No | |
| feet | No | |
| inches | No | |
| summary | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| feetDecimal | No | |
| totalInches | No |
TDQS
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 bidirectional behavior and the source URL, but does not disclose details like rounding behavior, precision, or how inches are handled when zero. This is acceptable given the annotations, but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The first sentence states the core function, the second explains both directions, and the third provides a source reference. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple bidirectional converter with a full schema, an output schema, and complete annotations, the description covers the essential behavior. The only minor gap is not stating output format details (e.g., whether inches are always included), but the output schema likely covers that, and the tool is simple enough that this is not a significant omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters and their conditional requirements. The description adds the relationship between direction and which parameters are needed, but this is also encoded in the schema's allOf conditional. The description does not add meaningful detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts between centimetres and feet/inches, names both directions explicitly, and specifies what each direction takes and returns. It is easily distinguished from sibling converters like hopi_length_converter or hopi_celsius_to_fahrenheit because it names the exact units and bidirectional behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains both conversion directions and which parameters are used for each, giving clear context for when to use this tool. It does not explicitly name alternatives or exclusions, but the bidirectional direction guidance is sufficient for an agent to select it correctly among many converter siblings.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| b | No | Blue 0 to 255 (for rgb_to_cmyk) | |
| c | No | Cyan 0 to 100 (for cmyk_to_rgb) | |
| g | No | Green 0 to 255 (for rgb_to_cmyk) | |
| k | No | Key/black 0 to 100 (for cmyk_to_rgb) | |
| m | No | Magenta 0 to 100 (for cmyk_to_rgb) | |
| r | No | Red 0 to 255 (for rgb_to_cmyk) | |
| y | No | Yellow 0 to 100 (for cmyk_to_rgb) | |
| mode | Yes | Direction of conversion |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | No | |
| rgb | No | |
| mode | No | |
| summary | No | |
| rgbString | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 useful context by specifying that a 'standard device-independent conversion' is used and provides a source URL, giving the agent confidence in the algorithm's provenance and output semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry all essential information: direction, ranges, output formats, conversion standard, and source. Front-loaded with the action, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic conversion tool with a rich input schema, complete output schema, and clear annotations, the description covers everything an agent needs: both modes, valid input ranges, output formats, and the conversion approach. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented with range and mode context. The description restates ranges ('each 0 to 100', 'each 0 to 255') and the two directions, but doesn't meaningfully add beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Convert'), the resource (CMYK/RGB color values), and the exact bidirectional behavior, including output formats (RGB, hex, CMYK). It distinguishes itself from sibling color tools like hopi_hex_to_rgb by clearly framing CMYK and RGB conversion with mode-specific ranges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear decision context: if you have print CMYK values, convert to on-screen RGB/hex; if you have RGB values, convert to CMYK. It doesn't explicitly name alternatives or exclusion cases, but for a bidirectional pure conversion tool, the intended usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_coin_flipCoin flipARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many coins to flip, 1 to 10000 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| heads | No | |
| tails | No | |
| results | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations: it explicitly says the coin is fair, supports multiple flips, and returns a tally. Annotations already declare read-only and non-destructive behavior. There is no direct contradiction, though the idempotent hint sits oddly with a random process; the description itself does not conflict with any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loads the main action, and contains no filler. The source URL is the only extra element, but it is unobtrusive and does not detract from clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with a full output schema, complete annotations, and a straightforward behavior, the description provides enough information for an agent to select and invoke it correctly. Nothing about invocation requirements or expected behavior is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the count parameter with range, default, and a clear description. The tool description only echoes 'one or more times' and adds no deeper semantic detail beyond what the schema provides, so the schema-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Flip a fair coin one or more times.' It also describes the return shape ('each result plus a tally of heads and tails'), making the tool's purpose unmistakable and distinguishing it from random generators like dice rollers and number generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case obvious for anyone needing coin flips, but it does not explicitly mention when to prefer this tool over alternatives or when not to use it. Sibling tools such as hopi_dice_roller and hopi_random_number_generator are not referenced, so 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_colour_name_finderColour name finderARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour code, e.g. #DC143C or #F00 |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| exact | No | |
| input | No | |
| names | No | |
| summary | No | |
| distance | No | |
| nearestHex | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 detail beyond that: matching uses straight-line distance in RGB space and only considers 148 named CSS colours. This gives the agent a solid model of how the result 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence delivers the action, scope, algorithm, and source with no filler. The most important information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup tool with full schema coverage, a rich output schema, and safety annotations, the description is complete. The algorithm and colour set are specified, and the output schema can be relied on for return-value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already has a clear pattern and examples. The description mentions 'hex code' but does not add additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Find the named CSS colour'), a precise resource ('148 named CSS colours'), and the matching rule ('exactly or most closely matches'). This clearly differentiates it from related siblings like hopi_hex_to_rgb or hopi_colour_palette_generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the context clear: use this when you have a hex code and need the corresponding CSS colour name. It does not explicitly name alternative tools or state when not to use it, so it misses the top bar, but the usage intent is unambiguous.
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 generatorBRead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Base colour as a six-digit hex code, e.g. #1F8A70 | |
| scheme | No | Colour scheme (default analogous) | analogous |
Output Schema
| Name | Required | Description |
|---|---|---|
| base | No | |
| scheme | No | |
| palette | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'results vary slightly each call' due to random variation, which directly contradicts the annotation idempotentHint: true. An idempotent tool should return identical results for identical inputs, and the description claims the opposite, making it impossible for an agent to trust the annotation metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core action, and contains no wasted words. It includes essential behavioral caveats (random variation, number of swatches) and a source link, all in three sentences without repeating schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers inputs, output swatch count, scheme options, and the random-variation caveat, and an output schema exists for the return shape. However, the idempotence contradiction undermines the agent's ability to form an accurate model of call outcomes, making the definition incomplete as a whole.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both hex and scheme, including the pattern, enum, and default, so schema description coverage is 100%. The description reinforces that hex is a base colour and lists the schemes, but adds no new parameter-level meaning beyond what the schema provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Generate'), a concrete deliverable ('five-swatch colour palette'), and the required input ('base hex colour'). It also enumerates the four possible schemes, making the tool's function unmistakable and distinguishing it from sibling colour tools such as hopi_colour_shades_generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by clearly defining the input->output transformation, but it does not explicitly state when to prefer this tool over alternatives like hopi_colour_shades_generator or hopi_random_colour_generator. It offers no exclusions or 'when not to use' guidance, 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_pickerColour pickerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Six-digit hex colour code, e.g. #1F8A70 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | No | |
| hsl | No | |
| rgb | No | |
| summary | No | |
| hslString | No | |
| rgbString | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so no additional safety disclosure is needed. The description confirms a pure input-to-output transformation and includes a source, but does not add behavioral details such as error handling or normalization behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence covering input and outputs, followed by a source attribution. There is no redundant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, stateless, read-only converter with a full output schema and annotations, nothing essential is missing. The simple description is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the pattern already encodes the optional leading # and six hex digits. The description restates this in plain language but adds minimal semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('return'), a clear input ('six-digit hex colour code'), and a precise output set ('hex, RGB and HSL values'). This differentiates it from siblings like hopi_hex_to_rgb by the combined output, so an agent can identify the right conversion tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The input condition is explicit and the output set makes it clear when this tool is the right choice for a full hex conversion. It does not explicitly name alternatives or exclusions, so it stops short of 5.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Base colour as a six-digit hex code, e.g. #1F8A70 |
Output Schema
| Name | Required | Description |
|---|---|---|
| base | No | |
| tints | No | |
| shades | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/destructive annotations, the description discloses the exact mixing behavior: five equal steps of one sixth, mixed towards white for tints and black for shades. It also cites a source URL, adding credibility and context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly packed sentence that front-loads the key action and output, then adds precise step details and attribution. No wasted words; the source URL earns its place as provenance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single simple parameter, an output schema present, and annotations covering safety/idempotency, the description is complete. It states the input, the number of outputs, the mixing direction, the step size, and the source, leaving nothing essential unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter 'hex' already has a pattern and example in the schema. The description adds no new parameter-level detail beyond referring to it as a 'base hex colour', so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('generate') and a specific resource ('five progressively lighter tints' and 'five progressively darker shades' from a base hex colour). It precisely distinguishes this from siblings like hopi_random_colour_generator or hopi_colour_palette_generator by specifying the exact output structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is clearly implied: 'From a base hex colour, generate...' an agent can infer when to use it. However, it does not explicitly mention alternatives or give exclusions, such as 'for a random colour use hopi_random_colour_generator' or 'for a palette use hopi_colour_palette_generator'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_combination_generatorCombination generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | The list of items to choose from | |
| choose | Yes | How many items to pick in each combination (r) |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| summary | No | |
| truncated | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| combinations | No |
TDQS
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 behavioral detail by stating that it 'Returns the total count and the combinations themselves (the first 5000),' which discloses output truncation. This is useful context beyond the annotations, though it does not mention edge cases such as when r exceeds the list size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose is stated in the first clause, followed by return behavior and a source link. Every element contributes directly to understanding what the tool does and what to expect, with no filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only tool with a full input schema and an output schema present, the description is largely complete. It explains the main operation, the meaning of r, and the output truncation limit. Minor gaps remain around duplicate items or behavior when r is greater than the number of items, but these are not critical for typical invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema already defines 'items' and 'choose' clearly, including the meaning of r. The description reinforces that r is the number of items to choose, but adds no substantial new semantics beyond the schema. The baseline of 3 is appropriate because the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List every way to choose r items from a list, ignoring order (combinations).' This clearly identifies the tool's function and distinguishes it from sibling tools by focusing on exhaustive combination generation rather than random selection or other calculators. It also clarifies the 'ignoring order' scope, which separates it from permutation-style tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this when you need all unordered combinations of r items from a list. However, it does not explicitly state when not to use it, nor does it name any alternative sibling tool for related tasks like permutations or random sampling. The guidance is contextual but relies on inference.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Annual interest rate as a percentage | |
| years | Yes | Term in years (1 to 100) | |
| monthly | No | Monthly contribution in GBP (default 0) | |
| principal | No | Starting deposit in GBP (default 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| rate | No | |
| years | No | |
| months | No | |
| monthly | No | |
| summary | No | |
| principal | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| totalPaidIn | No | |
| finalBalance | No | |
| interestEarned | No |
TDQS
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 goes beyond this by disclosing the calculation methodology—compounding monthly, contributions added at end of month—and by stating the exact return values. This provides useful behavioral context without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. It front-loads the core action and mechanics, then states the outputs, then units and source. Every sentence contributes to understanding what the tool does, its inputs, and its provenance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the input schema fully documents parameters, the description provides sufficient methodology, output summary, and units for an agent to invoke the tool correctly. It also credits the source. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented with units and defaults. The description adds meaning beyond the schema by clarifying that contributions are added at the end of each month, which affects how the 'monthly' parameter is applied in compounding. It also reinforces currency and rate units, though these are largely present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool projects savings growth from a starting deposit plus regular monthly contributions, with monthly compounding and end-of-month contributions. It specifies the outputs (final balance, total paid in, interest earned) and units (GBP). It does not explicitly name sibling tools, so it stops short of full differentiation, but the mechanics are specific enough to distinguish it from simple interest or other savings calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for savings growth projection with contributions, but it gives no explicit when-to-use guidance, no exclusions, and no pointers to alternative sibling tools like savings_goal_calculator or loan_calculator. The agent can infer the intended use case from the phrasing, but there is no direct comparison or routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_contrast_checkerContrast checkerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| background | Yes | Background colour as a six-digit hex code, e.g. #FFFFFF | |
| foreground | Yes | Text colour as a six-digit hex code, e.g. #767676 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ratio | No | |
| aaLarge | No | |
| summary | No | |
| verdict | No | |
| aaNormal | No | |
| aaaLarge | No | |
| aaaNormal | No | |
| background | No | |
| foreground | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| ratioString | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: it reports AA and AAA for normal and large text, and it cites the source (hopi.co.uk). It does not mention edge cases (e.g., invalid hex handling) but the schema pattern already constrains inputs. This is solid value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The core function is front-loaded, the output criteria are stated, and the source URL is a useful addition. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only calculator with a full output schema, the description is nearly complete. It explains what the tool computes, what it reports, and where the logic comes from. It doesn't describe the exact output format, but the output schema exists, so that burden is covered. A 4 is appropriate; a 5 would require explicit mention of edge cases or return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters with examples. The description adds the semantic context that foreground is 'text colour' and background is 'background colour', which is already in the schema descriptions. Baseline 3 is appropriate because the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Work out'), a specific resource (WCAG contrast ratio between foreground and background hex colours), and the exact output (AA/AAA pass/fail for normal and large text). It is clearly distinguishable from the many sibling colour tools (e.g., hopi_colour_name_finder, hopi_hex_to_rgb) because it names the WCAG standard and the pass/fail reporting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: whenever an agent needs to check WCAG contrast between two hex colours. It does not explicitly name alternatives or exclusions, but the context of a large sibling list of colour/calculator tools makes the use case clear. A small deduction for not explicitly saying 'use this instead of X'.
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 translatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | A five-field cron expression, for example '*/5 9-17 * * MON-FRI', or a shortcut like @daily |
Output Schema
| Name | Required | Description |
|---|---|---|
| hour | No | |
| month | No | |
| minute | No | |
| english | No | |
| summary | No | |
| dayOfWeek | No | |
| dayOfMonth | No | |
| expression | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior, lowering the burden on the description. The description adds useful behavioral context by detailing accepted input constructs (stars, steps, ranges, lists, names, shortcuts), giving agents a clearer sense of valid expressions beyond the schema example.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences plus a source URL, with the core action front-loaded. No filler or redundancy; every phrase adds information about scope, supported syntax, or provenance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-string-input translator with output schema, annotations, and a feature-rich description, nothing critical is missing for an agent to select and invoke it correctly. The description covers input shape, accepted syntax, shortcuts, and even cites the source for verification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a strong parameter description and example. The tool description further enriches parameter semantics by listing supported syntax elements like steps, ranges, and shortcuts, adding value beyond the schema's example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Translate'), names the exact resource ('standard five-field cron expression'), and states the output ('plain English'). It also enumerates supported syntax features and shortcuts, making the tool's function unmistakable and distinct from other translators/parsers 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when you need a cron expression rendered in plain English. It implicitly excludes non-five-field formats by specifying 'standard five-field', but it does not explicitly name alternative tools or when-not-to-use conditions.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| buy | Yes | Buy price per unit | |
| fee | No | Fee percentage charged on each side (default 0, must be 0 to under 100) | |
| sell | No | Sell price per unit (optional; omit to see breakeven only) | |
| quantity | Yes | Quantity of coin traded |
Output Schema
| Name | Required | Description |
|---|---|---|
| profit | No | |
| summary | No | |
| breakeven | No | |
| totalFees | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| profitString | No | |
| returnPercent | No | |
| breakevenString | No | |
| totalFeesString | No | |
| returnPercentString | No |
TDQS
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 useful behavioral context beyond that: breakeven price is always returned, profit/return percentage/total fees appear once a sell price is given, and all figures are in GBP. This clarifies output behavior and currency assumptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no filler. The primary purpose and inputs are front-loaded, followed by output behavior and the currency note. The source link is the only extraneous element but is a reasonable attribution.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple calculator nature, full schema coverage, and presence of an output schema, the description covers everything an agent needs: inputs, optional behavior, return values, and currency. No critical usage context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the input schema. The description briefly mentions buy price, quantity, optional per-side fee percentage, and sell price, but adds little 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.
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 profit or loss on a crypto trade' with explicit inputs (buy price, quantity, optional per-side fee). It clearly distinguishes this tool from the many sibling calculators by naming the crypto trading domain and the exact outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: any crypto trade profit/loss calculation. It explains the optional sell price behavior ('omit to see breakeven only'), which guides usage, but it does not explicitly name alternatives or 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_css_gradient_generatorCSS gradient generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Gradient type (default linear) | linear |
| angle | No | Angle in degrees for a linear gradient (default 90) | |
| colour1 | Yes | First colour, e.g. #FF512F | |
| colour2 | Yes | Second colour, e.g. #DD2476 |
Output Schema
| Name | Required | Description |
|---|---|---|
| css | No | |
| type | No | |
| angle | No | |
| summary | No | |
| gradient | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds useful behavioral detail beyond that: it discloses the operation produces a 'ready-to-use' value and specifically returns 'the gradient value and a full background declaration', plus a source reference. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: purpose, mode options, and return value/source. Information is front-loaded with the main capability and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity tool, the description plus schema and annotations cover the essentials: what it does, the choices (linear/radial, angle), and what it returns. The output schema handles return structure. Minor gaps like colour format expectations are already addressed in the parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a clear description including defaults and examples. The description only lightly reinforces that two colours and an angle are involved, adding no new semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Build') and resource ('a ready-to-use CSS gradient from two colours'), and spells out the two modes (linear with angle, radial). This clearly distinguishes it from the many colour-related siblings such as hopi_colour_palette_generator or hopi_colour_shades_generator, none of which generate gradients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use the tool: whenever a CSS gradient is needed from two colours. It does not explicitly name alternatives or exclusions, but the described scope is enough for an agent to route to this tool correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_css_minifierCSS minifierARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| css | Yes | The CSS source to minify |
Output Schema
| Name | Required | Description |
|---|---|---|
| css | No | |
| summary | No | |
| afterBytes | No | |
| savedBytes | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| beforeBytes | No | |
| savedPercent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which cover the safety profile. The description adds meaningful behavioral detail beyond annotations: it preserves quoted strings and calc() spaces, and it reports before and after byte sizes. This gives the agent useful expectations about the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant wording. It front-loads the action, states key transformation rules, and notes the return format. The source attribution is extra but does not bloat the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, pure transformation tool with an output schema and safety annotations, the description covers purpose, transformation behavior, preserved edge cases, and return value. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already has a clear description ('The CSS source to minify'). The tool description adds broader behavioral context but no additional parameter syntax, format, or edge-case instructions, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Minify CSS by removing comments and needless whitespace.' It clearly differentiates the tool from potential sibling utilities like css_gradient_generator by describing the exact transformation and its preserved edge cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: whenever the agent needs to minify CSS. However, it does not explicitly name alternatives or state when not to use it, relying on the tool name and purpose rather than offering routing guidance against sibling tools.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| csv | Yes | The CSV text to convert | |
| firstRowHeaders | No | When true, the first row supplies the object keys; when false, every row becomes a plain array of strings (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| json | No | |
| rows | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| firstRowHeaders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description adds meaningful behavior: standard CSV quoting rules for embedded commas, quotes, and line breaks, plus the exact treatment of the first row in both header modes. This tells the agent how conversion behaves rather than merely asserting safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two focused sentences: the conversion action plus the key header-dependent behavior, followed by a source link for reference. Every 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.
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 covers input format, quoting behavior, header modes, output shape, and points to source documentation. With an output schema and safety annotations present, nothing essential is missing for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description repeats the firstRowHeaders semantics but adds little beyond the schema's own wording, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Convert CSV text into a JSON array'. It further refines the purpose by explaining header behavior, which makes it clearly distinguishable from the opposite sibling hopi_json_to_csv and other conversion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when CSV text needs to become JSON, including both header and no-header cases. It does not explicitly mention alternatives or state when not to use it, but the purpose and sibling set make the appropriate use obvious.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| cups | Yes | Number of US cups | |
| ingredient | Yes | The ingredient |
Output Schema
| Name | Required | Description |
|---|---|---|
| cups | No | |
| grams | No | |
| summary | No | |
| ingredient | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| gramsPerCup | No |
TDQS
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 usefully adds that results are 'approximate' and that cups are US cups, and it cites a source for the conversion factors, but it does not describe edge cases such as rounding or precision of the returned value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact paragraph: a front-loaded conversion sentence, a parenthetical list of ingredients, and a source URL. There is no repeated information and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter conversion tool, this is complete: input units, ingredient choices, approximate nature, and provenance are all covered, while the output schema and read-only annotations remove the need to describe return values or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the bare enum labels by clarifying 'caster' = caster sugar, 'brown' = packed brown sugar, 'rice' = uncooked rice, and so on, making the accepted values meaningful to an agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Convert US cups of a common baking ingredient to grams (approximate).' It lists all eight accepted ingredient keys with their real-world equivalents, so the tool's scope is unambiguous and it cannot be confused with the many generic 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is strongly implied by the conversion statement and the ingredient list, but there is no explicit mention of when to choose this over another converter or any exclusions (e.g., 'for liquid volumes use volume_converter'). For a simple calculator sibling, the implied context is probably sufficient but not expressly 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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Currency to convert to, ISO 4217 code e.g. EUR | |
| from | Yes | Currency to convert from, ISO 4217 code e.g. GBP | |
| amount | Yes | The amount to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| rate | No | |
| amount | No | |
| result | No | |
| summary | No | |
| asOfUnix | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 genuinely useful behavioral context beyond that: rates are live mid-market, updated hourly, and cover 150+ currencies, with a source URL for verification. This gives the agent a realistic expectation of data freshness and scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler. The core action is front-loaded, followed by precise usage details and a source reference. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter converter with full schema documentation, an output schema, and annotations covering safety, the description is complete. It supplies the key contextual facts—live rates, update frequency, currency-code format, and source—so an agent can invoke the tool correctly without further research.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters well. The description adds marginal value by providing a richer set of example ISO codes and naming the rate type, but it does not materially deepen understanding of amount, from, or to beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Convert an amount of money from one currency to another using Hopi's live mid-market exchange rates.' This clearly distinguishes it from the many unit converters among sibling tools, leaving no ambiguity that this is a currency-conversion tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical usage guidance by requiring ISO 4217 codes and providing examples (GBP, EUR, USD, JPY). However, it does not explicitly state when to prefer this tool over alternatives or mention any exclusions, leaving the usage context largely implied.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to | |
| from | Yes | Unit to convert from | |
| value | Yes | The size value to convert | |
| binary | No | Use binary units (1 KB = 1024 bytes) instead of decimal (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| value | No | |
| binary | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful behavioral nuance beyond annotations, especially the default decimal interpretation of KB/MB/GB/TB and the optional binary mode, plus a source link for verification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the purpose first, lists the units, explains the binary distinction, and ends with the source. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, self-contained conversion tool, the description covers all essentials: purpose, units, default behavior, and the optional binary mode. With comprehensive schema documentation, annotations, and an output schema, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter already described in the input schema. The description adds helpful context for the binary flag and unit conventions, but this largely restates and slightly elaborates on what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Convert') with a clear resource ('digital storage size') and explicitly lists the units involved. It clearly distinguishes itself from the many other converter tools in the sibling list by scoping to data/storage sizes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool, including the decimal-versus-binary distinction and real-world framing ('as storage is sold', 'as Windows reports drive sizes'). It does not explicitly name alternative tools, but the domain is precise enough that an agent can route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_date_calculatorDate calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Start date in YYYY-MM-DD format | |
| unit | No | Unit to move by (default 'days') | days |
| amount | Yes | How many units to move (0 to 100000) | |
| direction | No | 'add' to move forwards, 'subtract' to move backwards (default 'add') | add |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| unit | No | |
| amount | No | |
| result | No | |
| summary | No | |
| weekday | No | |
| direction | No | |
| resultLong | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds valuable non-obvious behavior: the clamping rule for months and years to the last day of the target month, plus the expected return of the resulting date. This goes beyond what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each earning its place: the operation, the date format, the edge-case behavior, and the return value. The source URL is a minor but acceptable addition. The description is front-loaded and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a pure read-only calculator with a complete input schema, rich annotations, and an output schema, the description covers everything needed: what it does, the format to use, the tricky clamping behavior, and what is returned. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains date, amount, unit, and direction. The description adds useful context around date format and month/year clamping behavior, but it does not substantially deepen understanding of individual parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource: 'Add or subtract a number of days, weeks, months or years from a date.' It clearly defines the core operation and differentiates it from sibling tools like hopi_add_working_days or hopi_days_between_dates, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The operation is clearly stated, so an agent can infer this tool is for calendar date arithmetic. However, it does not explicitly mention when not to use it or point to alternatives such as hopi_add_working_days for business-day calculations. The guidance is functional but implicit 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_day_of_week_calculatorDay of the week finderARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | The date in YYYY-MM-DD format |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| summary | No | |
| weekday | No | |
| fullDate | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| thisYearWeekday | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds value by disclosing the extra current-year weekday behavior and citing the source URL. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: primary purpose first, then input format, then the extra behavior, then source. Each component is useful and there is no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only calculator with an output schema, the description covers everything an agent needs: what it computes, how the date should be formatted, and the additional current-year report. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents the date parameter with format 'date' and a clear YYYY-MM-DD description. The description repeats the format but does not add new semantic meaning beyond the schema. This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Find which day of the week a given date falls on.' It also names the non-obvious secondary behavior ('Also reports which weekday that same day and month falls on in the current year'), which distinguishes it from generic date calculators. This is specific enough to separate it from siblings like 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied clearly: call it when you need the weekday of a given date. However, it does not explicitly mention alternatives or exclusions, even though sibling tools like hopi_date_calculator and hopi_days_between_dates overlap in the date-tool space. No routing guidance beyond the core purpose is provided.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'to_salary' from a day rate, or 'to_rate' from a salary | |
| salary | No | Annual salary in GBP (required for to_rate) | |
| dayRate | No | Day rate in GBP (required for to_salary) | |
| workingDays | No | Billable working days per year, 1 to 365 (default 220) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| annual | No | |
| weekly | No | |
| dayRate | No | |
| monthly | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| workingDays | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful behavioral context beyond that: outputs are gross GBP amounts before tax, the default is 220 billable days, and the produced figures include yearly/monthly/weekly values. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact, front-loaded sentences: the core conversion, the mode behavior, and the gross-GBP caveat. The source URL is the only minor extra but it's useful provenance and doesn't bloat the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and annotations, the description fully covers what an agent needs to call this tool correctly: the two modes, the default parameter, the currency/tax context, and the conversion direction. Nothing important is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented. The description adds meaningful semantic detail over the schema by explaining what each mode produces (yearly, monthly, weekly figures versus a day rate) and confirming the workingDays default of 220. It doesn't give the exact formula, but that's not necessary for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Convert') and resource (contractor day rate to annual salary equivalent), explains both modes, and differentiates it from other salary-related siblings like hourly_to_salary by focusing on day rates. The purpose is unambiguous and self-contained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly tells the agent when to use each mode ('to_salary' turns a day rate into yearly, monthly and weekly figures; 'to_rate' turns a salary into a day rate) and mentions the default working days. It doesn't explicitly name alternative tools or exclusions, but the context is clear 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_days_between_datesDays between dates calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date in YYYY-MM-DD format | |
| from | Yes | Start date in YYYY-MM-DD format | |
| inclusive | No | Count both end days rather than excluding the end day (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| days | No | |
| from | No | |
| weeks | No | |
| summary | No | |
| swapped | No | |
| weekdays | No | |
| inclusive | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| remainderDays | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds valuable behavioral context beyond annotations: it explains the output includes weeks and weekdays (Mon–Fri), states the date format, and clarifies the inclusive flag. This gives the agent a clearer picture of what to expect without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no fluff. It front-loads the main purpose, then adds format and inclusive details. The inclusion of a source URL is extra but not distracting. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple calculator with 3 parameters and an output schema present. The description covers the output breakdown (days, weeks, weekdays), the date format, and the inclusive option. Annotations cover read-only behavior. Nothing essential for correct invocation is missing; edge cases like date order are minor and unlikely to affect usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning every parameter is already documented in the schema. The description repeats the date format and inclusive behavior that are already present in the schema, adding no new semantic information. Per the rubric, the baseline is 3 for high coverage, and the description does not raise it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Count the number of days between two dates' and specifies the additional outputs (weeks, weekdays). It is specific enough to distinguish from siblings like hopi_working_days_calculator (which focuses on business days) and hopi_date_calculator (likely more general). The purpose is unambiguous and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions or recommend sibling tools for different scenarios, such as using hopi_working_days_calculator for business days. With many similar date-related siblings, the lack of explicit selection criteria leaves room for confusion.
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 ChristmasARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Optional date to count from, in YYYY-MM-DD format (defaults to today) |
Output Schema
| Name | Required | Description |
|---|---|---|
| sleeps | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| christmasDate | No | |
| isChristmasDay | No | |
| christmasWeekday | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent; the description adds meaningful behavior: it defaults to today's date, accepts a YYYY-MM-DD 'from' date, and counts sleeps to the next Christmas Day. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler: the first states the core purpose, and the second covers the optional parameter and source. The key behavior is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter, read-only, idempotent tool with an output schema, the description is fully sufficient. It explains what is counted, the default date, the accepted format, and even links a source. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter 'from' with format 'date' and default 'today' at 100% coverage. The description reinforces the format and default, but does not add significant new semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Count the number of sleeps until the next Christmas Day (25 December).' It clearly names the exact target date and purpose, distinguishing it from generic date/calendar siblings like hopi_days_between_dates 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the use case: a countdown to Christmas, with today as default or an optional 'from' date. It does not explicitly state when not to use it or name alternatives, so it falls short of a full 5.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| buys | Yes | The list of buys | |
| currentPrice | No | Current price per unit (optional), to value the position now |
Output Schema
| Name | Required | Description |
|---|---|---|
| buys | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| averageCost | No | |
| coinsAcquired | No | |
| totalInvested | No | |
| averageCostString | No | |
| coinsAcquiredString | No | |
| totalInvestedString | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the description only needs to add context. It adds that figures are treated as GBP, describes what outputs are returned, and explains the optional current-price behavior for unrealised profit/loss. This is useful behavioral context beyond the annotation flags, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well ordered: purpose first, then input structure, then outputs, then currency and source. Every sentence adds useful information without repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a pure calculator with full schema documentation, an output schema, and safety annotations, the description covers the scenario, input shape, optional parameter behavior, outputs, currency, and source. Nothing critical for correctly invoking this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already documented in the schema. The description adds meaning by framing buys as pound-cost-averaged purchases and clarifying that supplying currentPrice triggers current value and unrealised profit/loss calculations. It also establishes the GBP unit convention for the numeric inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Work out the average cost basis across a series of pound-cost-averaged buys.' This clearly differentiates it from generic average or profit calculators by focusing on a series of buys and cost-basis calculation. The listed outputs reinforce the tool's identity as a DCA calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the intended DCA scenario and explains that a current price is optional, but it does not explicitly say when to use this tool over related siblings like hopi_crypto_profit_calculator or hopi_average_calculator. No alternatives or exclusion conditions are stated, so the agent must infer the usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_dice_rollerDice rollerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| sides | No | Number of sides on each die (default 6) | |
| quantity | No | How many dice to roll, 1 to 20 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| sides | No | |
| total | No | |
| lowest | No | |
| highest | No | |
| results | No | |
| summary | No | |
| quantity | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only and non-destructive nature, so the description only needs to add supporting behavior. It describes the return contents, which is helpful, but it does not mention that outcomes are random/non-deterministic, a meaningful behavioral detail especially with idempotentHint set to true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences lead with the action and resource, include the essential return information, and append a source URL 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only utility with a full input schema and an output schema, the definition is nearly complete. The only notable gap is the lack of an explicit statement that the roll results are random and will differ between calls, which could matter given the idempotent annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains sides and quantity with defaults, minimums, and maximums. The description adds no new parameter semantics beyond restating 'one or more dice' and 'number of sides,' so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Roll'), a concrete resource ('dice'), and the configurable 'number of sides.' It also states the return shape (each die result plus total, highest, and lowest), so an agent can distinguish it from generic random-number generators or coin flips.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening phrase 'Roll one or more dice with a given number of sides' clearly establishes when to use the tool. It does not explicitly name sibling alternatives or state when not to use it, but the use case is unambiguous enough for a simple utility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_diff_checkerDiff checkerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | The original (left) text | |
| b | Yes | The changed (right) text |
Output Schema
| Name | Required | Description |
|---|---|---|
| diff | No | |
| added | No | |
| removed | No | |
| summary | No | |
| identical | No | |
| addedLines | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| removedLines | No |
TDQS
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 useful behavioral context beyond those annotations: the LCS line-by-line algorithm, the representation of edits as one removal plus one addition, and exact matching including spaces and case. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero wasted words. The core action is front-loaded, the algorithmic detail and edit behavior follow naturally, and the source citation at the end is optional but non-intrusive. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-string comparison tool, this is complete. Safety profile is fully covered by annotations, parameters are fully documented in the schema, an output schema exists, and the description explains the diff semantics and exactness. 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.
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 that 'a' is the original (left) text and 'b' is the changed (right) text. The description adds no new parameter-level meaning beyond implying which side is which in the diff, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Compare two texts line by line' with a named algorithm (longest common subsequence diff) and a clear outcome (which lines were added/removed). It also explains edge behavior for edited lines and exact matching, making it easy to distinguish from any text-manipulation siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when comparing two texts to see exact line-level additions and removals. It doesn't name alternatives, but among the sibling list there is no other diff tool, so the implied usage is clear and 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_discount_calculatorDiscount & sale price calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'pct' percentage off, 'fixed' pound amount off, or 'find' the discount from two prices | |
| price | Yes | The original price (used in all modes) | |
| amountOff | No | Fixed pound amount off (mode 'fixed' only) | |
| finalPrice | No | The final price paid (mode 'find' only) | |
| percentOff | No | Discount percentage (mode 'pct' only) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| price | No | |
| saving | No | |
| summary | No | |
| salePrice | No | |
| percentOff | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| effectiveDiscount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's burden is lighter. The description adds the useful behavior that 'All money figures are in pounds', which is not in the schema or annotationsmk. It also clarifies the mathematical purpose of each mode, but it does not add details about rounding, output formatting, or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no dead weight. It front-loads the core purpose, then systematically explains the three modes in a compact bullet-like structure, ending with a relevant currency note and a source link. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (conditional schema based on mode) and the presence of a thorough input schema plus output schema, the description is complete. It explains the three calculation types Bernstein, clarifies the currency, and the schema covers required/optional fields. An agent can select and invoke the tool correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so every parameter (mode, price, amountOff, finalPrice, percentOff) is already documented with its purpose. The description reiterates the mode values and their meanings, which partially overlaps with schema descriptions, but it does not add new semantic details beyond that. Baseline 3 applies because the schema handles parameter documentation thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair ('Work out a discount and sale price') and then enumerates the three distinct modes ('pct', 'fixed', 'find'), each with a precise meaning. This differentiates the tool from sibling calculators like percentage_calculator and percentage_change_calculator by specifying the exact discount-focused scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool by defining each mode's input scenario (percentage off, fixed amount off, finding discount from two prices). It does not explicitly mention alternatives or when not to use it, but the mode descriptions imply the appropriate usage contexts without ambiguity.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Dog size band (default 'medium') | medium |
| dogAge | Yes | The dog's age in years (0 to 30) |
Output Schema
| Name | Required | Description |
|---|---|---|
| size | No | |
| dogAge | No | |
| summary | No | |
| humanYears | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context: the conversion rate depends on the dog's size, the result is an approximation based on a standard veterinary chart, and the tool returns the human-equivalent age. It does not cover rounding or edge cases, but for a simple calculator this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with the purpose front-loaded and no filler. Every sentence contributes distinct information: the conversion action, the size-dependent behavior, the return value, and the source.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculator with a fully documented schema, strong annotations, and an output schema, this description is complete. It gives the agent everything needed to select and invoke the tool correctly, including the source for verification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions and an enum for size. The description adds value by explaining why the size parameter matters—the conversion rate later depends on it—which is not fully captured by the schema alone. dogAge's unit ('in years') is also reinforced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Convert') with a clear resource ('dog's age in years') and target ('approximate human age'), and adds the distinguishing detail that the conversion depends on size band. This makes it clearly different from sibling tools like hopi_cat_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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it obvious when to use this tool by naming the dog-age domain and the size bands. However, it does not explicitly mention sibling alternatives, such as cat_age_calculator, or state 'use this for dogs, not cats,' so exclusions are only implied.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| size | Yes | File size value | |
| speed | Yes | Connection speed value | |
| sizeUnit | Yes | File size unit | |
| speedUnit | Yes | Speed unit: Mbps/Gbps are bits per second, MBps is megabytes per second |
Output Schema
| Name | Required | Description |
|---|---|---|
| size | No | |
| speed | No | |
| seconds | No | |
| summary | No | |
| duration | No | |
| sizeUnit | No | |
| speedUnit | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| megabytesPerSecond | No |
TDQS
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 details beyond that: it returns both a human-readable duration and time in seconds, and it clarifies the distinction between bit-based (Mbps/Gbps) and byte-based (MBps) speed units. This enriches the agent's understanding of what to expect, earning a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero fluff. It front-loads the purpose, then gives the essential input instructions. The source URL is included as a minor addition but does not detract from clarity. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with comprehensive annotations and an output schema (though not shown), the description is complete. It tells the agent exactly what inputs to provide, what units are accepted, and what outputs to expect. There are no missing critical details that would hinder correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 4 parameters with descriptions, giving 100% schema coverage. The description mostly repeats what the schema already says (e.g., size units, speed units), though it adds the bit/byte clarification which the schema also includes. No new semantic information is provided 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Estimate how long a download takes.' This is a specific verb and resource, and it is distinct from all sibling tools, which are other calculators. It 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on what inputs to supply (file size with unit, connection speed with unit) and what units are accepted. It does not explicitly mention alternatives or when not to use it, but given the tool's unique niche among siblings, this omission is minor. The input guidance is clear enough for an agent to know how to invoke it.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| lmp | Yes | First day of the last menstrual period, ISO date 'YYYY-MM-DD' | |
| cycleLength | No | Cycle length in days, 20 to 45 (default 28) |
Output Schema
| Name | Required | Description |
|---|---|---|
| lmp | No | |
| dueDate | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| cycleLength | No | |
| trimester2Starts | No | |
| trimester3Starts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond annotations by disclosing the exact calculation method: LMP adjusted by (cycle - 28), then +280 days, with trimester boundaries at +84 and +182 days. It also states the date format and cites the source, which gives the agent clear expectations about behavior and output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, leading with the purpose, then the method, outputs, format, and source. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only calculator with a documented output schema, the description is complete. It covers inputs, computation, return values, date formatting, and provenance, leaving no significant gap for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds value by explaining how the cycle length parameter is used in the adjustment formula and what the computed outputs represent, giving the agent a deeper understanding of the calculation beyond field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific function: estimate a pregnancy due date from LMP and cycle length. It also names the additional outputs (second and third trimester start dates), which distinguishes it from generic date calculators 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.
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 a pregnancy due date is needed from an LMP and optional cycle length. It does not explicitly name alternatives or exclusions, but the domain and inputs are specific enough that an agent can 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_dummy_data_generatorDummy data generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | How many records to generate, from 1 to 1000 | |
| fields | No | Which fields to include (default all). Choose from firstName, lastName, fullName, email, ukMobile, ukLandline, streetAddress, town, postcode, dateOfBirth, company |
Output Schema
| Name | Required | Description |
|---|---|---|
| csv | No | |
| rows | No | |
| count | No | |
| fields | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond annotations: it explains that phone numbers use Ofcom reserved drama ranges and emails use RFC 2606 example domains, ensuring no record reaches a real person. It also states the return format (array of records plus CSV text). This complements the readOnlyHint and idempotentHint annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it leads with the primary action, then explains safety, then the output format. Two sentences contain all essential information with no redundancy. The source URL is a minor extra but doesn't detract from clarity. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a output schema (not shown) and detailed annotations, the description is fairly complete. It covers the purpose, safety guarantees, and return format. It does not mention edge cases or constraints like the count limit, but those are in the schema. For a data generator, this is adequate; it could add a note about typical use cases but is not severely lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides full descriptions for both parameters (count and fields), achieving 100% coverage. The description adds no extra parameter-specific detail beyond what the schema already states. It mentions the output format but not the parameters themselves. Since the schema covers the semantics, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: generate fake but safe UK test records. It uses a specific verb (generate) and resource (UK test records), and differentiates from sibling random generators by specifying UK-focused, safe data. The mention of Ofcom ranges and RFC 2606 domains further distinguishes it from generic data generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating test data that is safe for real contact, but it does not explicitly compare with alternatives or state when not to use it. While the safety aspect gives context, there is no direct guidance on choosing this over other sibling generators like random_number_generator or lorem_ipsum_generator. The 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_email_link_generatorEmail link generatorARead-onlyIdempotentInspect
Build a correctly percent-encoded mailto link from to, cc, bcc, subject and body fields, plus a ready to paste HTML anchor snippet. Spaces are encoded as %20 and line breaks as %0D%0A, as the mailto standard expects. Source: https://hopi.co.uk/email-link-generator/
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Optional cc addresses, separated by commas or semicolons | |
| to | Yes | One or more recipient addresses, separated by commas or semicolons | |
| bcc | No | Optional bcc addresses, separated by commas or semicolons | |
| body | No | Optional body text; line breaks are preserved | |
| subject | No | Optional subject line | |
| linkText | No | Optional visible text for the HTML anchor (default 'Email us') | Email us |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| html | No | |
| summary | No | |
| warning | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 details beyond annotations: it explains the percent-encoding specifics (%20 for spaces, %0D%0A for line breaks) and notes that the output includes a ready-to-paste HTML anchor snippet. This gives an agent practical expectations about how the tool behaves in a way the annotations alone do not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, followed by critical encoding details and a source link. Every sentence contributes necessary information (what it builds, encoding specifics, provenance), with no filler or 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.
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)Skip, 6 parameters (1 required), and annotations covering safety/idempotency, the description is largely complete. It explains the key behavioral nuance (encoding of spaces and line breaks) and the presence of an HTML anchor output, which are not fully inferable from the schema alone. The only subtle gap is the lack of explicit usage guidance, but that is already accounted for in the usage_guidelines dimension; for correct invocation, the description provides sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – each of the six parameters already has a descriptive schema entry. The description mentions only to, cc, bcc, subject, and body by namecars but does not add meaning beyond what the schema already provides (e.g., separators, defaults, line break preservation). It omits linkText entirely, but the schema covers it. Since the schema does the heavy lifting, a baseline score of 3 is appropriate; the description does not materially enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Build) and resource (mailto link + HTML anchor snippet), lists the exact input fields (to, cc, bcc, subject, body), and clearly distinguishes this tool from the many converter/encoder siblings in the toolset. It is immediately obvious what this tool does and how it differs from other URL-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for generating mailto links and anchor snippets, but it never explicitly says when to prefer this over alternatives (e.g., hopi_url_encoder) or when not to use it. There is no mention of exclusions or alternative routing, so the usage context is only implied by the tool's name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_emoji_removerEmoji removerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to clean |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | |
| removed | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds valuable behavioral detail: joined emoji sequences count as a single emoji, copyright/registered/trademark symbols are preserved, and the result includes both cleaned text and a removal count. This gives the agent a clear model of edge-case behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action. Every added sentence covers a meaningful detail: emoji sequence handling, symbol preservation, return value, and source attribution. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only, idempotent transformation with an output schema, the description is complete. It explains what is removed, what is preserved, how edge cases are counted, and what the tool returns, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents the only parameter as 'The text to clean'. The description mentions 'a block of text', but adds no significant parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Remove emoji from a block of text', and adds preservation details ('leaving the words and normal punctuation intact'). This clearly differentiates it from sibling text-cleaning tools like remove_extra_spaces or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when the tool is appropriate: cleaning emoji out of text while keeping words and punctuation. It does not name alternative tools or list exclusion cases, but the narrow, self-contained purpose makes the intended usage unambiguous.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| watts | Yes | Appliance power draw in watts (0 to 100000) | |
| hoursPerDay | Yes | Hours used per day (0 to 24) | |
| pencePerKwh | Yes | Electricity unit price in pence per kWh |
Output Schema
| Name | Required | Description |
|---|---|---|
| watts | No | |
| summary | No | |
| kwhPerDay | No | |
| costPerDay | No | |
| kwhPerYear | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| costPerWeek | No | |
| costPerYear | No | |
| hoursPerDay | No | |
| pencePerKwh | No | |
| costPerMonth | No |
TDQS
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: costs are in GBP, the unit price is in pence per kWh, and the source URL is cited. However, it does not disclose rounding behavior or calendar-period details for month/year, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the core purpose, then lists inputs and outputs, then adds unit and source context. Every sentence earns its place, and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers inputs, outputs, currency, and source, and the schema covers parameters completely. Although there is no output schema to explain the exact return structure, the description explicitly lists all return values (daily, weekly, monthly, yearly cost plus kWh used), so an agent can interpret the result. It is complete enough for a simple calculator tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters already have descriptions in the schema. The tool description repeats the parameter concepts (watts, hours per day, pence per kWh) but does not add extra meaning beyond the schema. It reinforces the units, which is useful, but does not go beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Work out the running cost'), the exact resource (an electrical appliance based on power in watts, hours per day, and unit price), and the outputs (daily, weekly, monthly, yearly cost plus kWh). It clearly distinguishes this from the many sibling calculators by naming the formula inputs and output scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly defines what inputs are needed and what result is produced, which is sufficient context for an energy cost calculation task. It does not explicitly name alternative tools or exclusion conditions, but the input and output specification strongly implies when to use it versus sibling calculators.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | '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 |
| text | Yes | The .env file text, or the JSON object text, depending on mode |
Output Schema
| Name | Required | Description |
|---|---|---|
| output | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses detailed parsing behavior well beyond what annotations provide: splitting on the first equals sign, skipping blank and commented lines, removing a leading export, stripping matching quotes, unescaping \n in double-quoted values, duplicate keys keeping the last value, and quoting rules for json-to-env mode. This is thorough, candid behavioral documentation for a transformation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and organized by mode. Every sentence carries useful information, including edge cases. The source URL is a minor appendage but does not detract from the overall efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with a rich output schema and annotations already covering read-only and idempotent behavior, the description is complete. It explains both input directions, parsing rules, quoting behavior, and duplicate handling. No critical information 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes both parameters, including the mode enum. The description adds meaningful context on how the 'text' parameter is interpreted in each mode, such as edge-case handling for quotes, comments, duplicates, and special characters. This exceeds the baseline but does not dramatically expand parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Convert between a .env file and a JSON object.' It clearly covers both directions of conversion and goes beyond the title by distinguishing the two modes. This makes the tool's purpose unambiguous and readily distinguishable from the many 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit behavioral guidance for each mode: 'In env-to-json mode...' and 'In json-to-env mode...'. This tells the agent exactly when to use each mode. It does not directly name alternative tools or state when not to use this tool, but the mode-specific instructions provide clear contextual guidance.
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 checksumARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The Ethereum address, with or without a 0x prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| valid | No | |
| status | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| checksummed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral detail beyond the annotations: it discloses that the tool reports three possible states (already checksummed, lacks checksum, fails checksum), returns the correctly checksummed form, and uses keccak-256 as specified by EIP-55. This gives an agent a precise model of what the tool will do and what outputs 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose is stated first, followed by output behavior, the algorithm, and a source reference. Every sentence contributes useful information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with readOnlyHint and idempotentHint annotations, the description is complete. It covers the input, the validation behavior, the possible status outcomes, the algorithm used, and even cites the 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single address parameter, so the schema already documents the parameter well. The tool description does not add additional parameter-level semantics, which is acceptable given the high schema coverage and the simple single-parameter interface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Validate an Ethereum address's EIP-55 capitalisation checksum and return the correctly checksummed form.' This clearly distinguishes the tool from similar-looking siblings like hopi_bitcoin_address_validator and hopi_eth_unit_converter by naming the exact standard and the Ethereum-specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for use: any time an Ethereum address needs EIP-55 checksum validation or correction. It does not explicitly name alternative tools or state when not to use it, but the domain is specific enough that an agent can infer the appropriate scenario.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| unit | Yes | The unit the amount is given in | |
| amount | Yes | The amount to convert, as a plain number (string preferred to keep full precision), e.g. "1.5" |
Output Schema
| Name | Required | Description |
|---|---|---|
| eth | No | |
| wei | No | |
| gwei | No | |
| summary | No | |
| ethPretty | No | |
| weiPretty | No | |
| gweiPretty | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint), the description reveals important behavior: 'exact 18-decimal integer maths (no floating point error)' and the precise conversion factors '1 ETH is 1e18 wei; 1 gwei is 1e9 wei'. This tells an agent that results are lossless and deterministic, which is valuable operational context. The description is also fully consistent with the non-destructive, read-only annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states the core function and key quality guarantee, the second provides the exact conversion constants, and the third gives a source reference. The most important information is front-loaded with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter converter with a full schema, a present output schema, and annotations covering safety, the description is complete. It supplies the conversion factors, the exact-arithmetic guarantee, and the source URL, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents both parameters thoroughly, including the unit enum and the precision rationale for the string type. The description adds the conversion-factor context but does not materially enrich per-parameter meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Convert an amount given in wei, gwei or ETH into all three units'. It names the exact input units and the output scope, which clearly distinguishes it from sibling converters like satoshi_converter or data_size_converter. No ambiguity remains about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: whenever an amount expressed in wei, gwei, or ETH needs conversion into all three denominations. It does not explicitly name alternatives or exclusions, but its precise unit scope makes the selection condition self-evident among the many converter siblings.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | How many lines to generate, 1 to 10 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| lines | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 the key behavioral details: random line generation, number ranges, and Lucky Stars ranges. It does not disclose edge behaviors such as whether numbers are unique or sorted within a line, but this is minor for a casual generator.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the primary action first, then the exact game rules, and ends with a source URL. Every sentence adds useful context, though the source URL is not essential for invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, strong schema coverage, an output schema, and safety-related annotations, the description is sufficiently complete. The main minor gaps are the lack of guidance about the similar lottery generator sibling and caveats about duplicate or sorted numbers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'lines', is fully documented in the input schema with a description, default, and minimum/maximum values. Since schema coverage is 100%, the description reasonably relies on the schema and adds no additional parameter-specific detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Generate random EuroMillions lines' with the exact composition of 5 main numbers and 2 Lucky Stars. It is easily distinguished from the generic sibling hopi_lottery_number_generator by the EuroMillions name, though it does not explicitly contrast the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the named lottery game: use this when EuroMillions number lines are requested. However, there is no explicit when-to-use or when-not-to-use guidance, nor any mention of the closely related generic lottery sibling.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| guests | Yes | Number of guests | |
| redSize | No | Red glass size in ml: 125, 175 or 250 | |
| whiteSize | No | White glass size in ml: 125, 175 or 250 | |
| redGlasses | No | Glasses of red per guest | |
| redDifferent | No | Serve a different red for each glass | |
| whiteGlasses | No | Glasses of white per guest | |
| sparklingSize | No | Sparkling glass size in ml: 100, 125 or 150 | |
| whiteDifferent | No | Serve a different white for each glass | |
| sparklingGlasses | No | Glasses of Champagne or sparkling per guest | |
| sparklingDifferent | No | Serve a different sparkling for each glass |
Output Schema
| Name | Required | Description |
|---|---|---|
| guests | No | |
| summary | No | |
| breakdown | No | |
| overageMl | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| totalBottles | No | |
| glassesPerGuest | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and idempotent; the description adds behavioral value beyond that by explaining the calculation logic: 'Ticking different wines splits a colour into one wine per glass, each poured once for every guest.' It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and front-loads the main purpose before the finer behavioral detail. The source URL is a minor addition but not bloating; the only slight awkwardness is the 'one wine per glass' phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter calculator with an output schema and full parameter descriptions, the description sufficiently captures the user task and the key behavioral twist of the different-wine flags. It does not need to state return format because the output schema covers it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 10 parameters are fully described in the schema, so the baseline is 3. The description adds extra meaning around the boolean 'different' parameters by tying them to per-glass pouring logic, and it maps the main input groups (red, white, Champagne, glasses per guest) to the visible parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Work out how many bottles of red, white and Champagne to buy for an event' from inputs 'number of guests and glasses per guest.' It clearly names the domain (event wine) and distinguishes it from the many 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for an event' plus the explicit input relationship ('from the number of guests and glasses per guest') gives a clear context for when to use the tool. There are no direct sibling alternatives, so an explicit when-not list 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_file_encrypterFile encrypterARead-onlyIdempotentInspect
Password-encrypt any file to a downloadable .enc blob, or decrypt one back, using AES-256-GCM with a PBKDF2-SHA-256 derived key. This tool is driven by the browser UI: the file is chosen on the page and encrypted locally, so it cannot be called directly with text arguments. Open the tool page to use it. Source: https://hopi.co.uk/file-encrypter/
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses that files are encrypted locally in the browser, that output is a downloadable .enc blob, and that direct text-argument calls are impossible. This is meaningful behavioral context that annotations alone do not provide, and nothing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences cover function, algorithm, output, invocation constraint, and source link with no filler. The most decision-relevant 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, UI-driven tool with an output schema, the description is complete: it names the operation, algorithm, local processing, output format, how to access it, and the source. There is no missing information an agent would need to route the user correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty, so there are no parameters for the description to elaborate. The description compensates by explaining why there are no text arguments and directs the user to the tool page, which is the most useful clarification possible for a UI-driven tool. Baseline 4 for zero-parameter tools is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: password-encrypt any file to a downloadable .enc blob, or decrypt one back, with the exact algorithm (AES-256-GCM + PBKDF2-SHA-256). It also states the critical UI-driven nature, clearly separating it from normal callable tools and from sibling public_key_message_encrypter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit invocation guidance: the tool is driven by the browser UI, cannot be called directly with text arguments, and the agent should open the tool page. It does not name alternative sibling tools or describe situations when another crypto tool would be more appropriate, 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_fortune_cookieFortune cookieARead-onlyIdempotentInspect
Crack open a virtual fortune cookie and receive a random cheerful fortune. Returns the fortune. Source: https://hopi.co.uk/fortune-cookie/
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| fortune | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, non-destructive, idempotent behavior, and the description adds the nondeterministic 'random cheerful' nature, the return of the fortune, and the source URL. It does not describe the exact output shape, but the output schema covers that, and random output does not contradict the retry-safety meaning of idempotentHint here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the action and result front-loaded and a compact source attribution at the end. There is no filler or redundant explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-argument, read-only, non-destructive novelty tool, the description plus annotations and output schema are sufficient: the agent knows what happens, what is returned, and that repeated calls are safe. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties, so there are no parameter semantics to document; the description implicitly confirms no input is needed. This matches the baseline for a 0-parameter tool with full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and result: crack open a virtual fortune cookie and receive a random cheerful fortune, and it explicitly says the fortune is returned. It does not explicitly differentiate this from similar random/mystic siblings like hopi_magic_8_ball or hopi_tarot_reader, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when a random cheerful fortune is wanted. There are no parameters or prerequisites, and no exclusion is needed; however, it never names alternatives, so it does not fully satisfy the explicit when-to-use-vs-alternatives criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_fraction_calculatorFraction calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| d1 | Yes | First denominator (not zero) | |
| d2 | Yes | Second denominator (not zero) | |
| n1 | Yes | First numerator | |
| n2 | Yes | Second numerator | |
| op | Yes | Operation: add, sub (subtract), mul (multiply) or div (divide) |
Output Schema
| Name | Required | Description |
|---|---|---|
| op | No | |
| mixed | No | |
| result | No | |
| decimal | No | |
| summary | No | |
| numerator | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| denominator | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds value by revealing output behavior (simplified result, mixed number where relevant, decimal value) and the fraction structure, but does not mention edge-case behavior like division by zero beyond the schema's not:const:0 constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a source URL, with the core operations and output types front-loaded. Every sentence earns its place, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter pure calculation tool with 100% schema coverage, complete annotations, and an output schema, the description is sufficiently complete. It covers the essential input semantics and output expectations. It only lacks explicit guidance about which sibling to use for related tasks, which is already penalized under usage guidelines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining that each fraction is 'a numerator over a denominator' and that numerators may be negative, clarifying the relationship among the four numeric parameters. This helps an agent form correct values even if it only skims the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb and resource: 'Add, subtract, multiply or divide two fractions' with explicit result types (simplified result, mixed number, decimal). It is specific enough to distinguish from most siblings, though it does not explicitly call out the closely related hopi_fraction_to_decimal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, such as hopi_fraction_to_decimal for simple decimal conversion, or other calculator siblings. The description implies usage through the listed operations but provides no exclusions or selection criteria.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'toDecimal' from a fraction, or 'toFraction' from a decimal | |
| decimal | No | The decimal to convert (mode 'toFraction') | |
| numerator | No | Numerator (mode 'toDecimal') | |
| denominator | No | Denominator, not zero (mode 'toDecimal') |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| exact | No | |
| decimal | No | |
| summary | No | |
| numerator | No | |
| recurring | No | |
| percentage | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| denominator | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses that toDecimal returns both decimal and percentage, and that toFraction returns the closest simplified fraction (denominator up to 10,000) with an exactness flag. This adds useful behavioral detail beyond the annotations' read-only/idempotent hints. The description also flags the approximation behavior for non-exact conversions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences plus a source line; every clause contributes either scope or a mode's input/output behavior. The main verb and resource are front-loaded, followed by mode rules. There is no redundant restatement of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, pure conversion tool, the description covers both modes, input constraints, and output behavior. The output schema exists, so return-value details do not need to be spelled out. It remains complete enough for an agent to invoke correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already documents all parameters with descriptions, so the baseline is 3. The description adds semantics by clarifying numerator/denominator must be whole numbers, and by defining the output behavior tied to the decimal (denominator cap and exactness). This extra context helps the agent choose and validate inputs, so a 4 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Convert between fractions and decimals', naming the exact verb and resource. The two modes are enumerated with their respective inputs, making the tool's function unambiguous among many hopi converter siblings. Although it does not explicitly distinguish from hopi_fraction_calculator, the specific function and mode breakdown make confusion unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly instructs when to use each mode: toDecimal with numerator/denominator, toFraction with a decimal. It also states the denominator limit for the fraction result, giving concrete usage context. It does not name alternatives or exclusions, so it stops short of the highest bar.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mpg | Yes | Fuel economy in miles per UK gallon | |
| miles | Yes | One-way distance in miles | |
| people | No | Number of people to split the cost between (default 1) | |
| returnTrip | No | Double the distance for a return journey (default false) | |
| pencePerLitre | Yes | Pump price in pence per litre |
Output Schema
| Name | Required | Description |
|---|---|---|
| mpg | No | |
| miles | No | |
| litres | No | |
| people | No | |
| gallons | No | |
| summary | No | |
| totalCost | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| costPerPerson | No | |
| pencePerLitre | No |
TDQS
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 specifying the output format (total cost, litres used, cost per person) and the currency (GBP), which is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the core function, and includes a source link for credibility. It avoids redundancy and every sentence contributes meaningful information, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All five parameters are documented in the schema, and an output schema exists, so the description isn't required to explain return values—yet it does anyway. It also emphasizes the UK gallon and pence per litre units, which is critical for correct usage. The tool is fully contextualized.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% parameter descriptions, so the baseline is 3. The description reiterates the meaning of miles, mpg, and pence per litre, and clarifies the optional returnTrip and people parameters, but it does not add significant new 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Estimate the fuel cost of a journey' with specific inputs (distance in miles, fuel economy in UK mpg, pump price in pence per litre). It also names the outputs (total cost, litres used, cost per person) and currency (GBP), making it distinct from any sibling like hopi_mpg_converter or hopi_energy_cost_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided, nor are alternative tools mentioned. The purpose is self-evident, but the description relies on the agent to infer that this is the correct tool for fuel cost estimation without contrasting it with related calculators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_hash_generatorHash generatorARead-onlyIdempotentInspect
Compute the SHA-256, SHA-1 or SHA-512 hash of a piece of text and return the hex digest. Uses the browser WebCrypto API. 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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to hash | |
| algorithm | No | Hash algorithm (default SHA-256) | SHA-256 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | No | |
| bits | No | |
| summary | No | |
| algorithm | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 useful behavioral context beyond these: it specifies that the implementation uses the browser WebCrypto API and that the result is a hex digest. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, followed by implementation detail, a security warning, and a source link. Every sentence earns its place; there is no fluff or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deterministic hash utility with two parameters, an output schema, and safety annotations, the description is complete: it names all algorithms, the output format, the implementation context, and the SHA-1 caveat. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters adequately. The description's mention of the three algorithm names and 'piece of text' maps directly to the parameters but adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Compute the SHA-256, SHA-1 or SHA-512 hash of a piece of text and return the hex digest.' This clearly states what the tool does and its output format, distinguishing it from related siblings like hopi_hash_identifier (identifies hashes) and hopi_hmac_generator (keyed digests).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use context by enumerating supported algorithms and adds an explicit warning: 'SHA-1 is included for compatibility with older systems only and should not be used for anything new.' It does not explicitly name alternatives for hash identification or HMAC generation, but the guidance is sufficient for the common cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_hash_identifierHash identifierARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | The hash string to identify |
Output Schema
| Name | Required | Description |
|---|---|---|
| length | No | |
| charset | No | |
| summary | No | |
| candidates | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and idempotent, and the description adds meaningful behavioral context: it explains the identification method (length, charset, prefix) and the key caveat that results are 'ranked best guesses, not proof.' This goes beyond what the annotations and schema state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, then gives a compact coverage list and the essential reliability caveat. The source URL is the only extra element and it is brief, so no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only, idempotent tool with an output schema, the description is sufficiently complete: it states the input, the method, the supported algorithm families, and the confidence limitation. Return format is covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single hash parameter, so the baseline applies. The description says the tool works from the hash's length, character set, and prefix, but it does not add parameter-specific format details beyond what the schema's 'The hash string to identify' already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase 'Identify the most likely algorithms behind a hash string' names a specific verb and resource, and the algorithm list plus 'from its length, character set and any prefix' makes the operation concrete. This clearly distinguishes it from sibling tools like hopi_hash_generator (which creates hashes) and hopi_cipher_identifier (which concerns ciphers).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the core use case clear but does not explicitly state when to choose this tool over alternatives such as hopi_hash_generator or hopi_cipher_identifier, nor does it give exclusions. The intended usage is implied rather than spelled out.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Age in years | |
| method | No | 'max' (percentage of max HR) or 'karvonen' (heart rate reserve). Default 'max' | max |
| restingHeartRate | No | Resting heart rate in bpm, required for the Karvonen method |
Output Schema
| Name | Required | Description |
|---|---|---|
| age | No | |
| zones | No | |
| method | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| maxHeartRate | No | |
| restingHeartRate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses the exact behavior: Max HR = 220 - age, the five percentage ranges for the max method, and the Karvonen reserve equation. This gives an agent full understanding of the calculation before invoking it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences front-load the purpose, immediately give the formulas and method differences, and include only relevant information plus a source URL. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a calculator tool, the definition is complete: all parameters are documented in the schema, the conditional restingHeartRate requirement is expressed, the exact formulas are in the description, and an output schema covers the return shape. 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.
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 detail beyond the schema by explaining how age is used in the max HR formula and how restingHeartRate participates in the Karvonen formula. This helps the agent reason about parameter effects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Estimate maximum heart rate and five training zones (bpm) from age.' It includes the exact formula and method variations, making it easy to distinguish from the many sibling calculators 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.
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 and clarifies the two method options: 'max' for percentages of max HR and 'karvonen' for heart rate reserve, explicitly noting that the Karvonen method needs restingHeartRate. It does not name alternatives or exclusions, but the usage context is otherwise unambiguous.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hex | Yes | Hex colour code, e.g. #D7263D or F0C |
Output Schema
| Name | Required | Description |
|---|---|---|
| hsl | No | |
| rgb | No | |
| summary | No | |
| hslString | No | |
| rgbString | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 by stating it accepts 3-, 6-, or 8-digit codes with an optional leading #, and that it outputs HSL as well as RGB, which is not obvious from the tool name. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the core conversion statement front-loaded. The source URL is a minor addition but does not dilute the content, and no irrelevant detail about processing or output formatting is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, side-effect-free conversion tool with a rich input schema and an output schema present, the description covers everything an agent needs: input form, accepted variants, and outputs. The source attribution and annotations complete the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'hex' parameter is already fully documented by the JSON schema, including a pattern and example. The description repeats the digit-length and leading-# rules but adds no new meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Convert'), identifies the exact resource (hex colour code), and names both outputs (RGB and HSL values), which corrects the narrower impression given by the name alone. The accepted formats and optional leading # further specify scope. This clearly differentiates it from reverse or related converters without needing to mention siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No sibling tool is explicitly named, but the description clearly frames the tool's direction: hex in, RGB and HSL out, which is sufficient for an agent to distinguish it from hopi_rgb_to_hex or hopi_hsl_converter. It provides clear context for when to use the tool and does not introduce any misleading exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_hmac_generatorHMAC generatorARead-onlyIdempotentInspect
Compute an HMAC (keyed hash) of a message with a secret key. The key and message are combined with a cryptographic hash (SHA-256, SHA-1 or SHA-512) using the WebCrypto importKey and sign functions. UTF-8 encoding is used for both. The result is returned as lowercase hex and as base64. All processing is local via the browser WebCrypto API; nothing is uploaded. Source: https://hopi.co.uk/hmac-generator/
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The shared secret key | |
| message | Yes | The message to authenticate | |
| algorithm | No | Hash algorithm to use (default SHA-256) | SHA-256 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | No | |
| base64 | No | |
| summary | No | |
| algorithm | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses that processing is local via the browser WebCrypto API, nothing is uploaded, UTF-8 encoding is used, and output is returned as lowercase hex and base64. This adds meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, then gives mechanism, output format, and privacy behavior. The source URL is mildly extra but not bloated; overall every informative sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations cover safety, the description supplies the remaining needed context: supported algorithms, encoding, output representation, and the local/no-upload guarantee. An agent has enough to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents message, key, and algorithm. The description confirms UTF-8 handling and output formats but does not add new parameter-level semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compute an HMAC (keyed hash) of a message with a secret key.' It also names the exact mechanism (WebCrypto importKey and sign) and supported algorithms, making it easy to distinguish from generic hashing tools like hopi_hash_generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is for keyed message authentication with a shared secret, using SHA-256/SHA-1/SHA-512. It does not explicitly list when-not-to-use or name alternatives, but the keyed-hash framing and algorithm choices make the intended use evident.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| months | No | Months of the year worked (1 to 12, default 12) | |
| daysPerWeek | Yes | Days worked per week (1 to 7) |
Output Schema
| Name | Required | Description |
|---|---|---|
| months | No | |
| summary | No | |
| partYear | No | |
| cappedAt28 | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| daysPerWeek | No | |
| entitlementDays | No | |
| entitlementWeeks | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds useful behavioral context by explaining the underlying calculation method (5.6 weeks/year, 28-day cap, part-year scaling) and stating that the return value is in days and weeks. This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a source URL, with no filler. The purpose and primary formula are front-loaded in the first sentence, and the optional scaling behavior follows immediately. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple 2-parameter calculator with annotations and an output schema, the description is complete: it covers input basis, optional adjustment, and output units. It does not explain edge cases like rounding, but the schema constraints (max 7, max 12) handle range boundaries, and the output schema presumably defines return structure. A small gap is the lack of any mention of result precision, but the output schema compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so both parameters (daysPerWeek, months) already have descriptions. The description reinforces their meaning by mentioning 'number of days worked per week' and 'scale to a part-year by the number of months worked', but does not add material new semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('work out'), specific resource ('UK statutory paid holiday entitlement'), and the calculation basis ('days worked per week', '5.6 weeks a year capped at statutory 28 days'). It clearly distinguishes from every sibling calculator by naming the exact domain and computation target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when calculating UK statutory holiday entitlement from days per week, optionally scaled by months. It does not explicitly name alternatives or exclusions, but the specificity ('UK statutory') makes the appropriate use case evident without needing to name sibling tools.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'to_salary' from an hourly rate, or 'to_hourly' from a salary | |
| salary | No | Annual salary in GBP (required for to_hourly) | |
| hourlyRate | No | Hourly pay rate in GBP (required for to_salary) | |
| hoursPerWeek | Yes | Hours worked per week (greater than 0, up to 168) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| annual | No | |
| weekly | No | |
| monthly | No | |
| summary | No | |
| hourlyRate | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| hoursPerWeek | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds meaningful behavioral context beyond annotations: the 52-week assumption and the gross-before-tax basis. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words. The first sentence front-loads the core conversion purpose, the second details the modes, and the third adds tax context 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, well-annotated calculator with a full parameter schema and an output schema, the description covers everything an agent needs: conversion direction, output granularity, the calculation basis (52 weeks), currency, and gross-tax scope. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters thoroughly. The description adds value by specifying what each mode produces (annual, monthly, and weekly pay for 'to_salary'; an hourly rate for 'to_hourly'), enriching the mode enum semantics beyond the schema's minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Convert between an hourly pay rate and an annual salary,' and goes further to define two operational modes with concrete outputs (annual/monthly/weekly pay vs hourly rate). This clearly distinguishes it from sibling salary-related calculators like take-home-pay or pro-rata tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it converts based on hours per week over 52 weeks and clarifies that amounts are gross GBP before tax. This implicitly guides the agent to use this tool for gross salary conversion rather than net/take-home calculators, though it doesn't explicitly name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_hours_calculatorHours calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End time in 24-hour HH:MM format, e.g. 17:30 | |
| start | Yes | Start time in 24-hour HH:MM format, e.g. 09:00 | |
| breakMinutes | No | Unpaid break in minutes (default 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| end | No | |
| start | No | |
| worked | No | |
| summary | No | |
| overnight | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| breakMinutes | No | |
| decimalHours | No | |
| grossMinutes | No | |
| workedMinutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context: the 24-hour HH:MM input requirement, overnight-shift handling with earlier end times, and the output format (hours/minutes plus decimal hours). It does not contradict annotations and covers the calculator's operational traits well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. It front-loads the core purpose, follows with format and edge-case handling, and closes with output details and a source link. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple 3-parameter calculator, the description is complete. It covers input format, the optional break parameter, the overnight special case, and the output format. The presence of an output schema means the description doesn't need to enumerate response fields, and it does not leave any critical behavioral gaps 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.
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 context like 'minus an optional unpaid break' and reiterates the HH:MM format, but most parameter intent is already captured in the schema definitions. It does not add significant new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Work out the hours worked between a start time and an end time, minus an optional unpaid break.' It clearly distinguishes itself from sibling calculators (e.g., hopi_time_calculator, hopi_minutes_to_hours) by stating the exact computation and the overnight-shift handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied from the task it describes, but the description does not name specific alternatives or state when not to use this tool. It explains what the calculator does and its constraints (e.g., overnight shifts), but the choice between this and similar time-related tools is left to the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_hsl_converterHSL converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| h | No | Hue 0 to 360 (for hsl_to_hex) | |
| l | No | Lightness 0 to 100 (for hsl_to_hex) | |
| s | No | Saturation 0 to 100 (for hsl_to_hex) | |
| hex | No | Hex colour code, e.g. #1FE85C (for hex_to_hsl) | |
| mode | Yes | Direction of conversion |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | No | |
| hsl | No | |
| mode | No | |
| summary | No | |
| hslString | No | |
| rgbString | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which fully cover the safety profile. The description adds the source URL for verification but doesn't detail edge-case behaviors like handling of 3-digit vs 6-digit hex, alpha channels in 8-digit hex, or rounding behavior of HSL outputs. With annotations carrying the safety burden, this is adequate but not enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. It conveys both conversion directions, the source attribution, and the input/output formats. Every word earns its place, and the core functionality is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema is present, so return values don't need explanation. The description covers the conversion directions and source. It could mention the available modes explicitly in prose rather than relying solely on the schema enum, but given the rich schema and annotations, the context is essentially complete for an agent to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a description (e.g., 'Hue 0 to 360 (for hsl_to_hex)') and range constraints. The description itself adds no parameter-level meaning beyond what the schema provides, so baseline 3 applies. The mode parameter's enum values are self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Convert') with a clear resource (hex colour code ↔ HSL/hex/RGB) and explicitly names both conversion directions. It distinguishes itself from siblings like hopi_hex_to_rgb by covering HSL as the intermediate/result format, making its unique role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the conversion context and the two modes of operation. It doesn't explicitly name alternatives like hopi_hex_to_rgb or hopi_rgb_to_hex or state when NOT to use this tool, but the dual-direction capability and mode parameter make the usage context unambiguous. A small gap is the absence of explicit exclusion guidance.
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 & unescapeARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'escape' text to entities, or 'unescape' entities back to text | |
| text | Yes | The text to escape, or the HTML with entities to unescape |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| input | No | |
| output | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 behavioral details beyond this: it specifies exactly which characters are escaped and that unescaping handles both named and numeric entities, which is useful for predicting output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that covers both modes and the exact transformation scope. The source URL at the end is minor but not bloated. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter utility with an output schema and strong annotations, the description is fully adequate. It explains both modes, the exact characters, and the entity scope; 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully describes both 'text' and 'mode'. The description adds some meaning by naming the five escaped characters and mentioning numeric entities, but this is marginal; the baseline of 3 is appropriate since the schema already carries the core semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: escape/unescape HTML characters and entities. It names the exact five characters (& < > " ') and distinguishes the two modes, making it distinct from siblings like hopi_url_encoder or hopi_base64.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies usage: escape when text needs to be safe in HTML, unescape when converting entities back to plain characters. It doesn't explicitly name alternatives or exclusions, but the two-mode framing gives an agent enough context to select the correct 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_http_status_codesHTTP status code referenceARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | An HTTP status code to look up, for example 404 | |
| query | No | A word to search for across code numbers, names and descriptions |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| name | No | |
| class | No | |
| summary | No | |
| className | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| description | No |
TDQS
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 that the tool retrieves name, meaning, and class and that search covers code numbers, names, and descriptions, which tells an agent exactly what behavior to expect. No additional side effects or prerequisites are relevant for this reference lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the primary lookup action before the secondary search mode. The source URL is included as useful provenance without bloating the text. There is no redundant or filler language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-mode reference tool, the description covers how to invoke it (by code or by word), what output categories are returned, and the source of the data. The output schema covers the return shape, so the description does not need to enumerate fields. Required parameters are handled by the schema's anyOf, and the description's two modes align with that structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both properties already explain their formats (integer code, string query). The description reinforces the query behavior by tying it to numbers, names, and descriptions, but it does not add new parameter-specific details. Baseline 3 is appropriate because the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action ('Look up a standard HTTP status code by number') and identifies the resource and outputs (name, meaning, class). It also states the alternative search mode by word across number, name, or description, making the tool's scope unambiguous. Although the sibling list is large, none of the siblings cover this lookup, so no extra differentiation is needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames the intended use case: looking up standard HTTP status codes or searching them by natural-language word. It gives no explicit exclusions or named alternatives, but the tool is unique among the sibling set, so the implied usage is sufficient. The two input modes map directly to whether an agent has a numeric code or a search term.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_iban_validatorIBAN validatorARead-onlyIdempotentInspect
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 uploaded. Source: https://hopi.co.uk/iban-validator/
| Name | Required | Description | Default |
|---|---|---|---|
| iban | No | An IBAN to validate (spaces and case are ignored) | |
| country | No | A two-letter country code (e.g. GB, DE, FR) to generate a test IBAN for instead of validating |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| valid | No | |
| length | No | |
| reason | No | |
| country | No | |
| summary | No | |
| normalised | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| country_code | No | |
| checksum_passes | No | |
| expected_length | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the normalization steps, length check, mod-97 checksum algorithm, and the fact that generated IBANs are not tied to real accounts. It also states all processing is local and nothing is uploaded. This goes well beyond the annotations (readOnlyHint, idempotentHint, destructiveHint) and gives the agent a clear model of what happens.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the main purpose, then explains the two modes, then adds the test-value caveat and local-processing note. Every sentence earns its place; no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two simple parameters, an output schema, and annotations covering safety. The description explains the algorithm, the test-value caveat, and the local processing. An agent has everything it needs to call the tool correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining that 'iban' is for validation and 'country' is for generation, and that spaces/case are ignored. It doesn't add much beyond the schema for 'country' (e.g., no list of supported countries), but it does clarify the mode switch, so a 4 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates an IBAN or generates a test IBAN, with explicit verbs and resource. It distinguishes the two modes (validate vs generate) and even names the source. It is distinct from siblings like hopi_bitcoin_address_validator and hopi_test_card_number_generator by focusing on IBANs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to pass 'iban' (to check it) and when to pass 'country' (to generate a test IBAN). It also clarifies that generated IBANs are test values only, which is a key usage caveat. This is strong guidance for selecting the right mode.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Event title (SUMMARY) | |
| allDay | No | True for an all-day event (no times). Default false | |
| endDate | No | End date, ISO 'YYYY-MM-DD'. Defaults to startDate | |
| endTime | No | End time 'HH:MM' 24-hour, timed events only. Defaults to startTime | |
| location | No | Optional location | |
| startDate | Yes | Start date, ISO 'YYYY-MM-DD' | |
| startTime | No | Start time 'HH:MM' 24-hour, timed events only. Default '00:00' | 00:00 |
| description | No | Optional description |
Output Schema
| Name | Required | Description |
|---|---|---|
| ics | No | |
| bytes | No | |
| title | No | |
| allDay | No | |
| summary | No | |
| filename | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is lower. The description adds valuable context beyond annotations: time inputs are interpreted in the caller's local time zone and stored as UTC, and the output is 'ready to save,' reinforcing that no file is written as a side effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with each earning its place: what the tool builds, how to provide dates/times and choose all-day mode, and what the output is. The source URL is minor but not distracting, and the essential instructions are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the return format does not need further explanation. The description covers required fields, date/time formats, the all-day vs timed branching, optional fields, and the local-timezone-to-UTC behavior. Nothing critical is missing for calling this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by clarifying the relationship between allDay and time parameters and explaining the timezone conversion behavior. It does not repeat every default, which is acceptable since the schema documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Build a .ics (iCalendar, RFC 5545) calendar file' and 'return the file text.' It also scopes the tool to 'a single event,' which distinguishes it from any broader calendar-management tool and leaves no ambiguity about what the tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational guidance: use startTime/endTime for timed events and set allDay true for all-day events. It does not name explicit alternatives or when-not-to-use conditions, but no sibling tool appears to overlap, so the guidance is sufficient for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_image_steganographyImage steganographyARead-onlyIdempotentInspect
Hide a secret text message inside an image using least-significant-bit (LSB) encoding, or reveal a message hidden in one. An optional password encrypts the message with AES-256-GCM before it is hidden. This is a browser image action: choosing an image, hiding and revealing all happen on the tool page. Your image and message never leave your device. Source: https://hopi.co.uk/image-steganography/
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations: LSB encoding, AES-256-GCM encryption, browser-local execution, and the privacy guarantee that data never leaves the device. The phrase 'hide' is consistent with readOnlyHint because it describes local client-side transformation, not external state mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise and front-loaded, with the core hide/reveal function in the first sentence, followed by optional encryption, execution model, privacy, and source. Every sentence adds useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and the presence of an output schema, the description covers all essential aspects: what the tool does, the algorithm used, optional encryption, privacy behavior, and source. No critical operational detail appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero tool parameters and schema coverage is 100%, so the schema needs no compensation. The description still clarifies that image selection, message entry, and optional password are handled on the tool page rather than as arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: hiding a secret text message inside an image via LSB encoding or revealing a hidden message. It also distinguishes the tool from sibling utilities by specifying image steganography and the browser-based interaction model.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: to hide or reveal text messages in images, with an optional AES-256-GCM password. It does not explicitly contrast it with related tools like file encrypter or zero-width text hider, so it stops short of full alternative routing.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'cpi' uses the ONS CPI index between two months; 'custom' uses your own rate | |
| years | No | Custom mode: number of years (0 to 200) | |
| amount | Yes | The money amount to adjust | |
| toYear | No | CPI mode: ending year (default is the latest year) | |
| toMonth | No | CPI mode: ending month (1 to 12, default is the latest month) | |
| fromYear | No | CPI mode: starting year (1988 to 2026) | |
| fromMonth | No | CPI mode: starting month (1 to 12) | |
| ratePercent | No | Custom mode: annual inflation rate as a percentage (-50 to 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| years | No | |
| amount | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| ratePercent | No | |
| adjustedValue | No | |
| totalChangePercent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent, non-destructive), the description discloses the data source, index base year (2015=100), valid date range (January 1988 to August 2026), and the returned values (adjusted value, total change, average annual rate). This gives the agent a clear 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short sentences lead with the main purpose and then add only high-value details: modes, data source, outputs, currency, and a reference URL. There is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not spell out return structures; it covers mode selection, date bounds, currency, and data source. An agent has enough information to invoke the tool correctly in either mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive property text, so the baseline is 3. The description adds value by clarifying that 'custom' compounds the annual rate over years, that amounts are in GBP, and that CPI mode returns rate statistics, which goes beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Adjust a money amount for UK inflation.' It further distinguishes the two calculation modes ('cpi' vs 'custom') and names the ONS CPI index, so an agent can identify it among the many sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear within-tool usage conditions: use 'cpi' for ONS-index-based historical adjustment between two months, and 'custom' for compounding a chosen annual rate. It does not explicitly name alternative tools (e.g., compound interest or CAGR calculators), but the mode guidance is enough to select the correct behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_json_formatterJSON formatterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | The JSON text to process | |
| mode | No | 'format' to pretty print, 'minify' to strip whitespace, 'validate' to only check validity (default format) | format |
| indent | No | Number of spaces per indent level when formatting (default 2) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| valid | No | |
| output | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint false), the description discloses that formatting/minifying only affect whitespace and that the tool returns either the output text or a parse error. This adds meaningful behavioral context about output and potential failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core action, followed by a behavioral guarantee and output/error behavior, plus a source URL. No redundant phrases; every sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with full schema coverage, annotations, and an output schema, the description covers purpose, behavior, and error handling. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters (json, mode, indent) with descriptions, and the context signal reports 100% schema description coverage. The tool description only mirrors the mode enum ('pretty print, minify or validate') without adding details about the indent parameter or input constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair: 'Pretty print, minify or validate JSON.' This distinguishes it from sibling conversion tools like hopi_json_to_csv or hopi_json_to_typescript by emphasizing it only changes whitespace and preserves structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage context by enumerating the three modes and explicitly stating that formatting/minifying do not alter values or structure, signaling it is not for conversion or key reordering. It does not explicitly name alternatives, but the clear scope provides adequate context without exclusions.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | A JSON array of objects to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| csv | No | |
| rows | No | |
| columns | No | |
| headers | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds substantial behavioral detail beyond that: header construction from key union, first-seen ordering, empty cells for missing keys, compact JSON serialization for nested values, and RFC 4180 quoting. This gives an agent a precise model of the transformation without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and every clause earns its place. The primary action is front-loaded, followed by concise edge-case behavior and a format guarantee. No filler or redundant restatement of the title or parameter name is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter converter with an output schema and safe read-only annotations, the description is complete. It covers input shape, header behavior, missing and nested values, quoting standards, and even provides a source reference. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter's description already says 'A JSON array of objects to convert.' The tool description restates this input format but does not add new parameter-level semantics beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Convert') and identifies the exact resource and transformation: a JSON array of objects becomes CSV. It also names key behavioral details like the header being a union of all keys, which clearly distinguishes this from related sibling tools such as hopi_csv_to_json or hopi_json_formatter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: the tool is for converting a JSON array of objects into CSV, and the input requirement is explicit. It does not explicitly mention alternatives or state when not to use it, but the directional conversion and input constraints make the appropriate use case clear enough.
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 converterARead-onlyIdempotentInspect
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 locally; nothing is uploaded. Source: https://hopi.co.uk/json-to-typescript/
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | A JSON sample to convert. It may be an object, an array or a primitive value. | |
| rootName | No | Name for the root interface or type alias (default Root). | Root |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| typescript | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this read-only, idempotent, and non-destructive, and the description adds valuable edge-case behavior: nested objects, array element merging with optional keys, null unions, and empty array/object handling. The explicit 'Runs locally; nothing is uploaded' is a useful privacy signal beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main purpose is front-loaded, followed by a dense but scannable list of conversion rules that all earn their place. The privacy note and source URL are brief and do not dilute the guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a pure conversion utility with full parameter schema and an output schema, the description covers the meaningful edge cases an agent would need to anticipate (nulls, empty containers, missing keys, privacy). 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both `json` and `rootName` are already documented. The description's conversion rules add output behavior rather than new parameter-level meaning, so the baseline 3 for full schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Convert a JSON sample into TypeScript interfaces and types') and then details the transformation rules. This clear target output distinguishes it from sibling JSON tools such as formatter/CSV/YAML converters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use this when the requested output is TypeScript interfaces/types, and adds that execution is local and nothing is uploaded. 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_json_yaml_converterJSON to YAML converterARead-onlyIdempotentInspect
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 locally in the browser; nothing is uploaded. Source: https://hopi.co.uk/json-yaml-converter/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Direction of conversion (default json-to-yaml) | json-to-yaml |
| text | Yes | The JSON or YAML text to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| output | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context beyond those: it runs locally in the browser, uploads nothing, and specifies the exact serialization details for each direction (js-yaml at two-space indent vs JSON.stringify). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences cover purpose, implementation behavior, and privacy, with no filler. The main action is front-loaded, and every remaining sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with a rich output schema and full schema coverage, the description is complete. It states what the tool does, how each direction behaves, that it is local and safe, and even provides a source link. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers both parameters with 100% coverage, including the mode enum and default. The description adds semantic detail by explaining what each conversion direction does under the hood, which helps an agent understand the practical effect of setting mode to json-to-yaml versus yaml-to-json.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Convert data between JSON and YAML in both directions.' It clearly distinguishes this tool from related siblings like hopi_json_formatter or hopi_json_to_csv by naming both supported directions and the exact data formats involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: whenever conversion between JSON and YAML is needed. It does not explicitly name alternative tools or state when not to use it, but the scope 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_jwt_decoderJWT decoderARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The JWT to decode, optionally with a leading 'Bearer ' prefix |
Output Schema
| Name | Required | Description |
|---|---|---|
| exp | No | |
| iat | No | |
| nbf | No | |
| type | No | |
| header | No | |
| status | No | |
| payload | No | |
| summary | No | |
| algorithm | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| statusNote | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description adds meaningful behavioral context: signatures are never verified, the returned claims are limited to algorithm/exp/iat/nbf/expired, and Bearer prefixes plus whitespace are tolerated. This is exactly the kind of caveat an agent needs to avoid over-trusting the output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: what it does, the critical verification caveat, the outputs, and the accepted input format. The most important safety information is front-loaded, and the description is compact without being vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with an output schema and strong annotations, the description covers all needed operational details: input handling, output scope, and the crucial limitation about signature verification. Nothing an agent needs to call or interpret the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single 'token' parameter, so the baseline is 3. The description adds value by explicitly stating that whitespace is handled in addition to the optional Bearer prefix, which clarifies acceptable input formats beyond the schema's wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Decode') and resource ('JSON Web Token's header and payload from base64url'), and clearly distinguishes this from JWT generation by focusing on decoding. It also lists exactly what the tool reports: algorithm, exp/iat/nbf claims, and expiration status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes that this tool is for decoding, not verification, with the explicit warning that 'a decoded claim proves nothing on its own.' It does not name an alternative sibling, but the generated-vs-decoded distinction relative to hopi_jwt_generator is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_jwt_generatorJWT generatorARead-onlyIdempotentInspect
Build and sign a JSON Web Token with HMAC (HS256, HS384 or HS512). Provide a JSON payload and a secret; the tool base64url-encodes a {alg, typ:'JWT'} header and the payload, then signs header.payload with HMAC-SHA using the secret. The payload is only encoded, not encrypted, so it must never contain real secrets. All processing is local via the browser WebCrypto API; nothing is uploaded. Source: https://hopi.co.uk/jwt-generator/
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes | The secret key used to sign the token | |
| payload | Yes | The token payload as a JSON object string, for example {"sub":"123","name":"Ada"} | |
| algorithm | No | HMAC signing algorithm (default HS256) | HS256 |
Output Schema
| Name | Required | Description |
|---|---|---|
| token | No | |
| header | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations' read-only/idempotent hints, the description discloses critical behavioral facts: the payload is only base64url-encoded, not encrypted, and must never contain real secrets. It also assures local-only WebCrypto processing with nothing uploaded, which materially affects trust and safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the first states the action and algorithm choices, the second gives a security caveat, the third explains local processing and cites the source. The critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with an output schema, the description covers the process, algorithm options, security implications, and execution environment. Nothing an agent needs to invoke it correctly or warn a user about is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters and the payload example. The description adds value by warning that the payload is not encrypted and should not hold secrets, which guides how to fill the payload parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair, 'Build and sign a JSON Web Token,' and names the exact algorithm family (HMAC HS256/HS384/HS512). This makes it unmistakable as the JWT creation tool rather than hopi_jwt_decoder or a generic HMAC generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly tells the caller what to supply ('a JSON payload and a secret') and explains the signing process. It does not explicitly name alternatives or exclusions, but the generation intent is so distinct from sibling tools that 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_kg_to_stoneKg to stone converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| kilograms | Yes | Weight in kilograms |
Output Schema
| Name | Required | Description |
|---|---|---|
| stone | No | |
| pounds | No | |
| summary | No | |
| kilograms | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| totalStone | No | |
| totalPounds | No |
TDQS
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 useful behavioral detail by explaining the return structure: whole stone plus remaining pounds, and totals in pounds and decimal stone. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The core purpose is front-loaded, and the return-value details are provided efficiently. The source link is a minor, non-distracting addition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter converter with annotations covering safety traits and an output schema present, the description is complete. It states the input, output format, and source without leaving important gaps 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, kilograms, is documented as 'Weight in kilograms' with a minimum of 0. The description does not add parameter-level semantics beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Convert a weight in kilograms to UK stone and pounds.' It also clearly distinguishes this from broader converter siblings like hopi_weight_converter by specifying the exact target unit system 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear: converting kilograms to UK stone and pounds. It does not explicitly mention alternatives or when not to use the tool, but the narrow scope of the conversion is evident from the first sentence.
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 checkerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | The year to check (1 to 9999) |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | |
| summary | No | |
| isLeapYear | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| divisibleBy4 | No | |
| nextLeapYear | No | |
| divisibleBy100 | No | |
| divisibleBy400 | No | |
| previousLeapYear | No |
TDQS
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 beyond the annotations: it specifies the exact algorithm (divisible-by-4, century, and divisible-by-400 rules) and the full set of return values (verdict, divisibility tests, next and previous leap years). This tells the agent what the tool computes and what it will receive, which is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first sentence states the action and the rules; the second lists the return values and cites the source. Every 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.
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 tool with a full input schema and an output schema present, the description is complete. It explains the algorithm, the return contents, and the source. There is nothing an agent needs to know to call this tool correctly that is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'year' is fully described in the schema ('The year to check (1 to 9999)'). The description reinforces the parameter's role by explaining how it is used in the leap-year rules. Since the schema already carries the full parameter meaning, the description adds modest but real value by connecting the parameter to the algorithm.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check whether'), a clear resource (a year), and the exact rules applied (divisible-by-4, century, divisible-by-400). It also lists the return contents (verdict, divisibility tests, next/previous leap years), which distinguishes it from any sibling calculator. The title and name are fully expanded into a precise, unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case obvious: any time an agent needs to determine if a year is a leap year, this is the tool. It doesn't explicitly name alternatives or exclusions, but among the large sibling list there is no other leap-year tool, so the context is clear. A small gap is that it doesn't state when not to use it (e.g., for date arithmetic), but the purpose is specific enough that an agent would not confuse it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_length_converterLength converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to | |
| from | Yes | Unit to convert from | |
| value | Yes | The length value to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| value | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering safety. The description's only extra behavioral context is the source URL, which adds provenance but not much operational behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence followed by a compact unit list and source link. It front-loads the action and scope without redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool with a fully described schema and an output schema present, nothing key is missing. The unit list, conversion direction, and input requirements are all conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema description coverage is 100%: each parameter has a description and the from/to enums list every valid unit. The description repeats the units but does not add semantics beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: 'Convert a length from one unit to another.' It names the complete set of supported units, and 'length' clearly distinguishes this from the many sibling converters (weight, area, volume, speed, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes when to use the tool: any time a length conversion is needed. It doesn't explicitly name alternatives or exclusions, but the tool's scope is unambiguous given its length-specific units.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The value to convert (litres or UK pints depending on direction) | |
| direction | Yes | Which way to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| litres | No | |
| summary | No | |
| ukPints | No | |
| usPints | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| millilitres | No |
TDQS
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 goes further by disclosing the direction-dependent output behavior and the fact that US pints are included only in one direction, adding real context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core conversion behavior. The source URL is mildly extraneous for tool selection and invocation, but overall every key behavioral fact is presented efficiently in three short sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity tool with two required parameters, complete schema coverage, an output schema, and full annotations. The description explains both directions and their outputs, so an agent has everything needed to invoke it correctly with no ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds extra meaning by explaining that the value is interpreted as litres or UK pints depending on the direction and by detailing what each direction returns, which enriches the otherwise terse 'Which way to convert' enum description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Convert between litres and pints.' It then names the two supported directions and their exact outputs (UK pints, US pints, millilitres, litres), making the tool's purpose unambiguous and distinct from generic volume converters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by specifying what each direction does: 'litres-to-pints takes litres and returns UK pints, US pints and millilitres' and 'pints-to-litres takes UK pints and returns litres.' It does not explicitly name sibling alternatives or exclusions, but the tool is self-contained and its applicability is obvious from the direction enum.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Annual interest rate (APR) as a percentage (0 to 100) | |
| years | Yes | Loan term in years (greater than 0, up to 30) | |
| amount | Yes | Amount borrowed in GBP (greater than zero) |
Output Schema
| Name | Required | Description |
|---|---|---|
| rate | No | |
| years | No | |
| amount | No | |
| months | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| totalRepaid | No | |
| totalInterest | No | |
| monthlyPayment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent non-destructive behavior talk, and the description adds useful context by specifying the standard amortising formula, the three return values (monthly payment, total repaid, total interest), and that amounts are in GBP. This goes beyond the structured annotations, though it doesn't mention potential edge cases like invalid inputs or precision.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose, and includes all essential details without fluff. The source URL is appended without disrupting the primary information, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only calculator with full schema descriptions and an output schema, the description provides all necessary input semantics, output clarity, and even a source reference. Nothing critical 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.
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 the three parameters. The description restates the parameters in prose but does not add new semantic details beyond what is in the schema, except perhaps clarifying the relationship between them. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes monthly loan repayment, total repaid, and total interest from amount, interest rate, and term, which is a specific verb+resource. However, it does not explicitly differentiate from sibling tools like hopi_mortgage_calculator or hopi_student_loan_calculator, which could overlap in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus related calculators such as mortgage or student loan calculators. The description only states what the tool does without any context about appropriate use cases or exclusions, 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_lorem_ipsum_generatorLorem ipsum generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | What the count refers to (default paragraphs) | paragraphs |
| count | Yes | How many paragraphs, sentences or words to produce |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| count | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the tool's safety profile is known. The description adds useful context about supported modes and maximum counts, which helps the agent avoid rejected calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three crisp sentences with no wasted words. The core purpose is front-loaded, and the source URL is a small useful addition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only placeholder generator with two well-documented parameters, the description fully covers what an agent needs: what it does, how the count is interpreted, and the applicable limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents 'mode' and 'count' clearly. The description reinforces the relationship between the two parameters and states the limits, but it mostly repeats what the schema and its conditional constraints already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Generate lorem ipsum placeholder text.' It clearly identifies what the tool does and differentiates it from the many sibling generator tools by focusing on the familiar lorem ipsum use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear when to use the tool: whenever lorem ipsum placeholder text is needed. It does not name alternatives or exclusions, but the context is obvious enough that an agent can infer the appropriate use.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| game | No | Which game to play (default lotto) | lotto |
| lines | No | How many lines to generate, 1 to 10 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| game | No | |
| lines | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate readOnly/idempotent/destructive safety, so the description only needs to add output behavior. It does: random lines per game with concrete ranges, plus the source URL. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence covers the action, supported games, and ranges, and the source URL is a small useful addition. Nothing is redundant or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations, full parameter schema, and presence of an output schema, the description supplies the remaining context an agent needs: randomness, game variants, and provenance. It is only missing an explicit routing note for nearby lottery tools like EuroMillions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3, but the description adds real meaning to the game enum by spelling out what Lotto, Thunderball, and Set For Life produce. The lines parameter is not expanded, but the schema already documents it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action ('Generate random lines') and a precise resource ('a UK lottery game'), then enumerates the three supported games with their exact number ranges. This makes the tool's purpose unambiguous and distinguishes it from generic random generators like 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The game list implies when to use the tool, but the description never states when not to use it or names sibling alternatives such as hopi_euromillions_generator for other lottery formats. An agent must infer the boundary rather than being told.
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 ballARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| question | No | The yes or no question to ask (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | No | |
| summary | No | |
| question | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 that the answer is random (non-deterministic despite idempotentHint), which is a useful behavioral trait beyond the annotations. It also states the answer is one of twenty classic answers, giving the agent a sense of the output space. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The core behavior is front-loaded, the output is stated, and the source URL is a useful addition. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, an output schema, and annotations covering safety, the description is nearly complete. It explains what the tool does, what the output is, and the source. It doesn't mention that the question is optional or what happens if omitted, but the schema already covers that. The only minor gap is not explicitly stating the output format, but the output schema likely covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter 'question' is described as 'The yes or no question to ask (optional)'. The description adds that the question should be yes/no, which aligns with the schema. Since the schema already fully documents the parameter, the description doesn't need to add much. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Ask'), a specific resource ('the Magic 8 Ball'), and the exact behavior: receive one of twenty classic answers at random. It also notes the source URL. This clearly distinguishes it from siblings like hopi_coin_flip or hopi_yes_no_wheel, which are also random answer tools but not the Magic 8 Ball.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for yes/no questions and notes the answer is random. It doesn't explicitly name alternatives or state when not to use it, but the context of 'yes or no question' and 'twenty classic answers' gives clear usage context. Sibling tools like hopi_yes_no_wheel or hopi_coin_flip are similar but the description's specificity is enough for an agent to select this tool for a Magic 8 Ball request.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| cost | Yes | Cost price in GBP | |
| price | Yes | Selling price in GBP |
Output Schema
| Name | Required | Description |
|---|---|---|
| cost | No | |
| price | No | |
| profit | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| marginPercent | No | |
| markupPercent | No |
TDQS
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 the definition of margin and markup, the currency (GBP), and a source link, giving useful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a source URL. The main purpose is front-loaded, and the clarification of margin vs markup earns its place. No redundant filler exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, deterministic calculator with full schema coverage ja an output schema, the description is complete. It explains the core calculations distinguishes the two key concepts and specifies the currency. Nothing essential 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – both cost and price are already described as 'Cost price in GBP' and 'Selling price in GBP'. The description repeats these labels but adds the conceptual relationship (margin vs markup) that helps understand how the parameters are used. This is a minor increment over the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific verb 'work out' and the exact outputs (profit, gross margin, markup) from two named inputs. It clearly distinguishes itself from the many calculator siblings by naming the margin/markup domain, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: when you need profit, margin, or markup from cost and selling price. It defines margin vs markup to prevent misuse. It doesn't explicitly name alternatives or exclusions, but given the tool's uniqueness among siblings, 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_markdown_previewerMarkdown previewerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| markdown | Yes | The markdown source to render |
Output Schema
| Name | Required | Description |
|---|---|---|
| html | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnly, idempotent, and non-destructive behavior. The description adds key behaviors not visible in annotations: HTML-escaping first, raw HTML rendered as text, and never executed. This fully sets expectations for safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load purpose then enumerate supported features and safety behavior. The supported-elements list is verbose but necessary for accurate invocation; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only converter with a known output schema, the description covers input constraints, output format, and safety behavior. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes the markdown source but the description enriches it with allowed constructs, heading levels, and permitted link protocols, so the agent knows what input is valid. With 100% schema coverage, the baseline is satisfied; the added constraints earn above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States exactly what it does: renders a defined markdown subset to HTML. The explicit list of supported constructs and the safety guarantee distinguish it from generic converters and sibling utilities such as HTML escaping or text tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear it is for safe rendering of a limited markdown subset and that unsupported features (e.g., raw HTML, links outside http/https/mailto) are intentionally not handled. It doesn't name an alternative tool, but given the sibling list and this tool's clear purpose, 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_market_cap_calculatorMarket cap calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | market_cap: price times supply. implied_price: target cap divided by supply. | |
| price | No | Current price per coin (for market_cap) | |
| supply | Yes | Circulating supply (for both modes) | |
| target | No | Target market cap (for implied_price) | |
| current | No | Current price per coin, to show the multiple (optional, implied_price mode) | |
| maxSupply | No | Maximum or total supply for FDV (optional, market_cap mode) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| approx | No | |
| summary | No | |
| marketCap | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| marketCapString | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only/idempotent behavior. The description adds useful context beyond annotations by emphasizing that nothing is looked up and any currency is accepted, preventing expectations of live price data or exchange-rate use. This is meaningful behavioral disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence defines the two core operations, and the second captures key behavioral constraints. The source URL is a minor extra but not distracting. No filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema, clear annotations, and output schema availability, the description covers the essential context: formulas, modes, currency flexibility, and no-lookup behavior. Nothing an agent needs 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.
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 and the two modes. The description repeats the core formulas but adds some semantic value by naming FDV and the backward-calculation mode, which maps to the maxSupply/current/target parameters. This meets the baseline without going far beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation: calculating market cap from price times circulating supply, plus FDV and backward-calculating implied price. This clearly distinguishes it from generic calculator siblings and crypto tools like profit or DCA calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when the tool is appropriate: it works in any currency and involves no external lookups, so it is a pure calculation tool using user-supplied values. It does not explicitly name alternatives or list exclusion cases, but the context is strong enough for an agent 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_meta_tag_generatorMeta tag generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Page title (guideline is around 60 characters) | |
| ogType | No | Open Graph type (default 'website') | website |
| ogImage | No | Open Graph image URL | |
| ogTitle | No | Open Graph title (defaults to title if omitted) | |
| canonical | No | Canonical URL for the page | |
| description | No | Meta description (guideline is around 155 characters) | |
| twitterCard | No | Twitter card type (default 'summary_large_image') | summary_large_image |
| ogDescription | No | Open Graph description (defaults to description if omitted) |
Output Schema
| Name | Required | Description |
|---|---|---|
| html | No | |
| lines | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| titleLength | No | |
| descriptionLength | No | |
| titleOverGuideline | No | |
| descriptionOverGuideline | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description does not need to restate safety. It adds useful behavioral detail by stating that the tool returns a ready-to-paste snippet plus character counts, which goes beyond the annotations and clarifies what the agent will receive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the action, scope, output, and source reference with no redundant filler. Each clause helps the agent understand what the tool does and what it returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 optional parameters, full schema documentation, an output schema, and safety annotations, the description is largely complete. It could explicitly note behavior when fields are omitted, but the schema already covers defaults and the description sufficiently sets expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter and default. The description contributes only a high-level grouping ('title, meta description, canonical link, Open Graph and Twitter card tags'), which maps to the parameters but adds no syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action ('Build a complete HTML head snippet') and names the included components: title, meta description, canonical link, Open Graph and Twitter card tags. This clearly distinguishes it from sibling generator tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use context obvious: generate an HTML head snippet for SEO and social sharing from page details. It does not explicitly name sibling alternatives or exclusion conditions, but the task boundary is clear enough that an agent can select this tool without much inference.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The distance value to convert | |
| direction | Yes | Which way to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| km | No | |
| miles | No | |
| summary | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive, so the description only modestly adds behavior by spelling out the direction-to-output mapping and citing a source. It does not disclose rounding or precision behavior, though the output schema likely covers return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the purpose and directions. The source URL is a minor extra that may aid provenance but is not essential for tool selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter conversion tool with full schema coverage, a safe-annotation profile, and an output schema, the description covers everything an agent needs to know to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage the baseline is 3, but the description adds real value by explaining what each direction means ('miles-to-km' takes miles and returns kilometres), which is more informative than the schema's 'Which way to convert.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a clear verb and resource: 'Convert between miles and kilometres.' It then specifies both supported directions, making it unmistakably distinct among the many hopi_* converter siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool's use case: any time an agent needs to convert distances between miles and kilometres in either direction. It does not explicitly name alternatives or exclusions, but no alternative is needed for this exact unit pair.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| time | Yes | The time to convert, e.g. '1430', '14:30', '2:30 pm' | |
| meridiem | No | am or pm for 12h-to-24h when not in the time string (default pm) | pm |
| direction | Yes | Which way to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| time12 | No | |
| time24 | No | |
| summary | No | |
| meridiem | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring the tool read-only, idempotent, and non-destructive, the description adds meaningful behavioral context: accepted format variants ('1430' vs '14:30'), the default meridiem behavior, and the fact that meridiem can appear inline. This goes beyond the safety profile carried by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences: the first states the core purpose, the second covers both direction modes with concrete examples, and the third provides the source. No filler, with each sentence earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has an output schema (so return format need not be described), and the description covers all input forms, direction semantics, and meridiem handling. 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.
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 tying parameters to direction-specific expectations: it explains what 'direction' values mean operationally, provides format examples that clarify the 'time' parameter, and explains the 'meridiem' default and inline alternative. This complements rather than merely repeats the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Convert between 24-hour (military) time and 12-hour clock time." It clearly identifies the two direction modes with concrete format examples, which distinguishes it from similar sibling tools like hopi_time_calculator or hopi_time_zone_converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear per-direction usage guidance: it specifies what input formats each direction expects and how the meridiem parameter is consumed, including the ability to embed it in the time string. It does not explicitly name when-not-to-use or alternative tools, but for a self-contained converter 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_minutes_to_hoursMinutes to hours converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Direction of the conversion | |
| hours | No | Hours to convert (used when mode is 'hoursToMinutes', 0 to 100000) | |
| minutes | No | Minutes to convert (used when mode is 'minutesToHours', 0 to 10000000) | |
| extraMinutes | No | Extra minutes to add to the hours (used when mode is 'hoursToMinutes', default 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| clock | No | |
| minutes | No | |
| summary | No | |
| breakdown | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| decimalHours | No |
TDQS
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 detail by noting the return format ('clock-style breakdown and decimal hours'), but does not discuss edge cases, validation, or error behavior. Given the strong annotations, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded: the first sentence states the core purpose, the second explains the mode switch, and the third covers outputs and source. The source URL is slightly extraneous but does not bloat the text. It is efficient and structured well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so the description needn't detail return values, yet it still mentions the clock-style breakdown and decimal hours, which is helpful. The conditional parameter requirements are handled by the schema's allOf construct. The description is complete enough for a straightforward conversion tool, though it could note the mode-dependent parameter requirements explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are individually documented with usage notes tied to mode. The description adds a small amount of semantic context by explaining 'plus optional extra minutes' and the overall conversion relationship, but it largely repeats what the schema already says. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: converting minutes to hours and hours to minutes, with explicit mode values. It is easy to understand the tool's function, though it does not explicitly differentiate from sibling converters like hopi_hours_calculator or hopi_time_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions setting mode to 'minutesToHours' or 'hoursToMinutes', which gives clear context for parameter selection. However, it provides no guidance on when to prefer this tool over alternative converters, nor does it state exclusion conditions. Usage is implied by the conversion purpose.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Optional date in YYYY-MM-DD format (defaults to today) |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| phase | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| moonAgeDays | No | |
| nextNewMoon | No | |
| nextFullMoon | No | |
| illuminationPercent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the call read-only, idempotent, and non-destructive. The description adds useful behavioral context by explaining the synodic-month basis since a known new moon, listing the return fields, and citing a source URL. No edge-case or failure behavior is discussed, but this is a simple deterministic calculator and the annotations cover its 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose first, then format/default, then output fields and source. Everything included 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional, fully documented parameter, rich annotations, an output schema, and a description that states defaults, output values, calculation basis, and source, the tool is fully callable by an agent. Nothing essential is missing for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter `date` is fully documented in the schema with its format and default behavior, so the description repeats rather than extends that information. The added calculation context is about the algorithm, not 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('work out the moon phase') and the resource/scope ('for a date'), and lists the concrete outputs: phase name, illuminated percentage, moon age, and next full/new moons. It is unmistakable among the sibling tools, none of which target moon phases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the date is optional, uses YYYY-MM-DD format, and defaults to today, giving an agent clear context for invoking the tool with or without arguments. It does not mention alternatives or exclusions, but no sibling tool provides comparable moon-phase functionality, so this 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_morse_code_translatorMorse code translatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text or Morse code to translate | |
| direction | No | 't2m' text to Morse (default), 'm2t' Morse to text | t2m |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | |
| summary | No | |
| unknown | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior, and the description adds substantial value beyond that: letters separated by spaces, words by '/', underscores treated as dashes during decoding, pipes as word separators, and unknown sequences rendered as '#'. This richly characterizes edge cases and input handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact at four sentences, with the core operation front-loaded and each subsequent sentence adding functional detail: encoding format, decoding variants, and failure behavior. There is no fluff or repetition of schema/annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only translator, the description covers the main operation, input formatting rules, decoding alternatives, and the fallback for unknown sequences. With an output schema present 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.
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 goes further by explaining the expected format of the 'text' parameter (separator conventions, underscore/pipe handling when decoding) and clarifying the role of the 'direction' enum, adding meaning beyond the schema's short descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Translate text into international Morse code, or Morse code back into text,' a specific verb and resource that fully captures the bidirectional purpose. The detailed format conventions (spaces, slashes, underscores, pipes) further distinguish it from other encoding siblings like caesar_cipher or base64, so an agent can identify it without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The first sentence provides clear context for when to use this tool: any request involving text-to-Morse or Morse-to-text conversion, reinforced by the direction parameter. While it does not explicitly name alternatives or exclusions, the scope is explicit enough that no direct sibling competes for this task.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Annual interest rate as a percentage (0 to 50) | |
| years | Yes | Mortgage term in years (greater than 0, up to 50) | |
| amount | Yes | Amount borrowed in GBP (greater than zero) |
Output Schema
| Name | Required | Description |
|---|---|---|
| rate | No | |
| years | No | |
| amount | No | |
| months | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| totalRepaid | No | |
| totalInterest | No | |
| monthlyPayment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses what the tool returns (monthly payment, total repaid, total interest), what it ignores (fees and rate changes), and that amounts are in GBP. This adds meaningful behavioral context, though it does not address edge cases such as zero rates or rounding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences deliver the core purpose, outputs, exclusions, currency, and source. Every sentence earns its place, and the key purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator tool with a complete input schema, explicit output schema, and safety annotations, the description covers the necessary context: formula, scope, exclusions, currency, and returns. Nothing essential is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters with 100% coverage, so the description does not need to restate them. It adds little parameter-specific meaning beyond confirming the formula and GBP currency, which keeps this at the baseline for fully documented schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Work out the monthly payment on a repayment mortgage at a constant interest rate'. It also specifies the exact outputs, making it clear this is a repayment-mortgage calculator and not, for instance, an overpayment calculator or general loan calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear applicability conditions: repayment mortgages, constant interest rates, and standard amortising formulas. It explicitly states that fees and rate changes are not included, which signals when this tool is not appropriate, though it does not name alternative sibling tools.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Annual interest rate as a percentage (0 to 50) | |
| extra | Yes | Extra monthly overpayment in GBP (0 or more) | |
| years | Yes | Remaining term in years (greater than 0, up to 50) | |
| balance | Yes | Current mortgage balance in GBP (greater than zero) |
Output Schema
| Name | Required | Description |
|---|---|---|
| rate | No | |
| extra | No | |
| years | No | |
| balance | No | |
| summary | No | |
| timeSaved | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| monthsSaved | No | |
| interestSaved | No | |
| monthlyPayment | No | |
| newPayoffMonths | No | |
| overpaymentPayment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so no contradiction exists. The description adds useful behavioral context by naming all four return values, specifying GBP amounts, and clarifying it applies to repayment mortgages with a regular monthly overpayment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, inputs, outputs, currency, and source all appear in two sentences. No filler or redundant restating of the tool name is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema, annotations, and output schema, the description covers everything needed to invoke the tool correctly. It names all four inputs, all four result values, the currency, and the applicable mortgage type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description restates the four inputs in plain language and adds some clarity by calling rate 'annual rate' and years 'remaining term in years,' but it does not substantially exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: showing how much time and interest a regular monthly overpayment saves on a repayment mortgage. It lists the required inputs and returned outputs, and its overpayment focus distinguishes it from sibling calculators like hopi_mortgage_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when evaluating a regular monthly overpayment on a repayment mortgage. It does not explicitly name alternatives or state when not to use it, but the purpose is specific enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_mpg_converterMPG converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The fuel economy value (UK mpg or L/100km depending on direction) | |
| direction | Yes | Which way to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| ukMpg | No | |
| usMpg | No | |
| summary | No | |
| direction | No | |
| kmPerLitre | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| milesPerLitre | No | |
| litresPer100km | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive, so no safety warnings are needed. The description adds useful behavioral detail beyond annotations by stating that the tool also returns US mpg, km per litre, and miles per litre, clarifying what the caller receives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose appears first, direction semantics follow, and extra output units are mentioned last. The source URL is the only extra detail and does not detract from usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two well-described parameters, strong annotations, and an output schema present, the description covers everything needed to invoke the tool correctly. It states both allowed directions, the unit expectations, and what additional conversions are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description reinforces how 'value' and 'direction' interact, but it does not add meaning beyond what the schema already provides. This meets the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Convert'), a precise resource ('fuel economy between UK miles per gallon and litres per 100 km'), and clearly identifies both conversion directions. It also disambiguates from the many other hopi converters by emphasizing UK mpg and listing additional output units.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: any UK mpg to L/100km conversion request. It also maps each direction to its expected input unit, which helps the agent avoid misuse. It does not explicitly name sibling alternatives or exclusions, but the scoped purpose 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_national_insurance_calculatorNational Insurance calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| salary | Yes | Annual gross salary in GBP |
Output Schema
| Name | Required | Description |
|---|---|---|
| salary | No | |
| summary | No | |
| niPerWeek | No | |
| niPerYear | No | |
| niPerMonth | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| effectiveRatePercent | No |
TDQS
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 by disclosing the exact thresholds (£12,570 and £50,270), rates (8% and 2%), the output breakdown (per year, month, week), and the effective rate. It also states the currency and cites a source, going beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it opens with the core purpose, then states the calculation inputs, thresholds, rates, outputs, currency, and source. Every sentence contributes useful information, and there is no redundant or vague wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only calculator with an output schema, the description is complete. It covers the tax year, employee Class 1 scope, input format, thresholds, rates, periodic outputs, and effective rate. No critical information required to select or 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage of the single parameter, describing 'salary' as 'Annual gross salary in GBP'. The description reaffirms this but adds no substantial new semantic detail beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Work out'), a precise resource ('UK employee Class 1 National Insurance for the 2026/27 tax year'), and the required input ('annual gross salary'). It clearly differentiates this tool from sibling calculators by specifying the exact tax year, the class of National Insurance, and the calculation basis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool applies: UK employee Class 1 National Insurance, annual gross salary, and the 2026/27 tax year. It does not explicitly name alternative tools or state exclusions (e.g., employer contributions or self-employed NI), but the specificity makes the intended use unambiguous.
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 translatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text or phonetic spelling to convert | |
| direction | No | 't2n' text to phonetic (default), 'n2t' phonetic to text | t2n |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | |
| summary | No | |
| unknown | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is set to adding extra behavioral context. The description adds meaningful output behavior: spaces become '(space)' and unrecognized words appear as '#', plus variant acceptance when converting back. This is exactly the kind of detail annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences front-load the core purpose and then give the two most important operational rules. The trailing source URL is brief and does not distract from the instructions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with an output schema and non-destructive annotations, the description covers both directions, the space placeholder, variant tolerance, and unknown-word handling. Nothing an agent needs to 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.
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 by explaining how the text parameter is interpreted in each mode and by listing accepted variants (Alpha, Juliet, Xray, Niner, Fife). The direction parameter is already well-defined by the enum and default in the schema, so the description does not need to add more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (NATO phonetic alphabet) and identifies both conversion directions ('spell text out' and 'convert a phonetic spelling back'), which fully conveys what the tool does. The concrete examples (Alfa, Bravo, Charlie) remove ambiguity and distinguish it from nearby translation tools like hopi_morse_code_translator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly communicates the intended use for text-to-phonetic and phonetic-to-text conversion, and the edge-case behavior (spaces, variants, unrecognized words) gives enough context for correct selection. It does not explicitly name alternatives or state when not to use it, but the tool's domain is unique enough that 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_net_to_grossNet to gross salary calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| net | Yes | Desired take-home pay in GBP | |
| period | No | Whether the net figure is yearly or monthly (default year) | year |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | |
| period | No | |
| summary | No | |
| incomeTax | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| grossPerYear | No | |
| grossPerMonth | No | |
| netCheckPerYear | No | |
| nationalInsurance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses specific behavioral details beyond the annotations: it uses the 1257L tax code, personal allowance taper, employee NI, and returns gross, tax, and NI. It also states the applicable jurisdiction and tax year. This is meaningful context not present in the annotations, though it omits edge cases or limitations (e.g., Scottish rates) explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with the core purpose first, followed by key constraints and outputs. The source URL is supplementary but not harmful. Every clause earns its place, and the whole description is compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple calculator with two well-described parameters commas and an output schema, the description covers all essential aspects: input semantics (net, period), calculation basis (tax code, taper, NI), regional scope, output contents (gross, tax, NI), and currency. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both 'net' and 'period' have descriptions in the schema. The description adds 'Give the net figure as yearly or monthly' and 'Amounts in GBP', but the schema already states the periodic semantics and currency. Thus, the description adds no significant meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('work out'), resource (gross salary from desired net pay), and scope (2026/27 tax year, England/Wales/NI, specific tax code and NI rules). This clearly distinguishes it from the related hopi_take_home_pay_calculator, which performs the inverse gross-to-net calculation, and other salary calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: when a user has a desired take-home/net figure and needs the required gross salary. It also implicitly excludes Scotland by naming only England, Wales, and Northern Ireland. However, it does not explicitly name an alternative for the reverse calculation 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_number_base_converterNumber base converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The number to convert, as text (optional 0b/0o/0x prefix, spaces and underscores ignored, may be negative) | |
| toBase | Yes | The base to convert to | |
| fromBase | Yes | The base the value is written in |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | No | |
| octal | No | |
| value | No | |
| binary | No | |
| result | No | |
| toBase | No | |
| decimal | No | |
| summary | No | |
| fromBase | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and destructiveHint. The description adds value by disclosing BigInt usage (exact conversion for any size) and the return behavior (all four bases). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the primary action, and includes a source link. Every sentence serves a purpose with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, the schema covers all parameters, annotations cover safety, and an output schema exists. The description adds essential behavioral guarantees (BigInt, return format) that complete the picture. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter fully documented (including prefix, spaces/underscores, and negative handling). The description adds no new semantic detail beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: convert a whole number between binary, octal, decimal, and hexadecimal. This clearly distinguishes it from sibling converters (e.g., angle, area, speed) and leaves no ambiguity about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly defines the scope (conversion between four specific bases) and implies its use for number base conversions. While it doesn't explicitly name alternatives or exclusions, the context is unambiguous and sufficient 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_number_to_wordsNumber to words converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The number to spell out, e.g. '1234.5' or '19.99'. May include commas. | |
| currency | No | Write as UK pounds and pence (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| words | No | |
| summary | No | |
| currency | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the read-only and idempotent nature is covered. The description adds valuable behavioral context: the maximum supported number (999,999,999,999), decimal precision to two places, and the currency mode's specific format (cheque style, ending 'only'). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no waste. The core function is front-loaded in the first sentence, followed by the currency option and then the range/decimals. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the primary features (range, decimals, currency mode) and an output schema exists, so return values are documented elsewhere. It does not mention edge cases like negative numbers or invalid inputs, but for a simple converter this is a minor gap. Overall, sufficient 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have descriptive schema entries with examples. The description adds marginal extra meaning by elaborating on the currency parameter's effect (UK pounds and pence, cheque style) and the value's supported range, but these are supplementary to the schema rather than essential clarifications.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Convert a number into written English words.' It clearly distinguishes from sibling converters like roman_numerals_converter or number_base_converter by specifying English words, and adds the currency mode for UK pounds and pence, leaving no ambiguity 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.
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 (converting numbers to English words, optionally as currency) but does not explicitly mention alternatives or when not to use it. However, the purpose is distinct enough among siblings that an agent can infer appropriate usage without exclusions.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| scale | Yes | The scale of the input value | |
| value | Yes | The temperature value (or gas mark 1 to 9 when scale is 'gas') |
Output Schema
| Name | Required | Description |
|---|---|---|
| scale | No | |
| celsius | No | |
| gasMark | No | |
| summary | No | |
| fahrenheit | No | |
| fanCelsius | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only/idempotent behavior. The description adds meaningful context beyond that by specifying exactly what the tool returns: conventional Celsius, fan Celsius, Fahrenheit, and nearest gas mark. This is sufficient disclosure for a stateless converter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences deliver the operation, input scale glossary, output list, and a source link with no filler. The key action and scale definitions are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple stateless converter, the description covers all conditions an agent needs: supported input scales, gas mark range, and complete return set. Schema coverage is 100%, annotations cover safety, and no hidden behaviors or side effects are relevant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents both parameters, the description adds important semantics: the meanings of the cryptic scale codes ('fan' is fan/convection Celsius, 'gas' is UK gas mark) and the 1–9 range for gas. This is real value beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource: 'Convert an oven temperature.' It goes on to enumerate the four supported scales and the returned outputs, making the tool's specialization clear against generic siblings like hopi_celsius_to_fahrenheit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames when the tool is appropriate (oven temperature conversions) and requires no preconditions. It does not explicitly point to sibling alternatives for non-oven conversions, but the oven-specific wording provides enough contextual 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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Base hourly rate in GBP | |
| doubleHours | No | Hours paid at double time, 2x (default 0) | |
| standardHours | No | Hours paid at the standard rate (default 0) | |
| timeAndHalfHours | No | Hours paid at time and a half, 1.5x (default 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| rate | No | |
| summary | No | |
| totalPay | No | |
| doublePay | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| totalHours | No | |
| doubleHours | No | |
| standardPay | No | |
| standardHours | No | |
| timeAndHalfPay | No | |
| timeAndHalfHours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and idempotent behavior. The description adds the validation requirement (at least one hours figure), the return contents (pay at each rate, total, total hours), and the scope (GBP, before tax and NI), which exceeds what the annotations alone convey. There is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences that front-load the purpose, then state the requirement, output, and scope. The source URL is optional but not wasteful, and 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter calculator with 100% schema coverage, an output schema, and safety annotations, the description covers purpose, validation, output structure, and currency/tax scope. Nothing an agent needs to select and 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.
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, including defaults and units. The description maps the three multipliers to the named parameters but does not add substantial semantic detail beyond the schema; the 'at least one hours figure' requirement is a validation behavior rather than parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses the specific verb 'work out' with resource 'gross overtime pay', names all three multipliers (standard, time and a half, double time), and clearly distinguishes this from sibling pay calculators like hourly_to_salary or take_home_pay by focusing on overtime-specific calculations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use the tool — calculating gross overtime pay from an hourly rate and hours at specified multipliers. It also states the requirement that at least one hours figure must be provided, but it does not explicitly name sibling alternatives or exclusions, 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_password_strength_checkerPassword strength checkerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | The password to assess (never uploaded; assessed locally) |
Output Schema
| Name | Required | Description |
|---|---|---|
| bits | No | |
| tips | No | |
| label | No | |
| score | No | |
| summary | No | |
| verdict | No | |
| crackTime | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 valuable behavioral detail beyond annotations: the specific crack-time assumption ('ten billion guesses a second') and the types of weaknesses detected. This helps set expectations about the analysis without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the core action, then lists the concrete outputs in a single sentence, and ends with a source reference. There is no filler or repetition of schema content. Every clause adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one simple parameter, rich annotations, and an output schema present, the description covers everything an agent needs to decide to call it and interpret what it will do. The crack-time assumption and warning types are included, and return values are left to the output schema. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter is already fully documented. The schema's description also adds the key privacy note ('never uploaded; assessed locally'). The tool description itself does not add further parameter-level detail, matching the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Estimate') and names the exact resource ('how strong a password is'). It then enumerates precise outputs (entropy bits, crack time, 0-4 score, verdict, warnings), which distinguishes it from any sibling tool on the list. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use it: anytime password strength needs to be estimated. No exclusions or alternatives are mentioned, but there are no close sibling tools to confuse it with, and the use case is obvious. It stops short of explicitly stating 'use this when…', so it doesn't earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_percentage_calculatorPercentage calculatorBRead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End value (mode 'change') | |
| from | No | Starting value (mode 'change', not zero) | |
| mode | Yes | 'of' percent of a number, 'what' one number as a percentage of another, or 'change' percentage change | |
| part | No | The part (mode 'what') | |
| whole | No | The whole (mode 'what', not zero) | |
| number | No | The number (mode 'of') | |
| percent | No | The percentage (mode 'of') |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| number | No | |
| result | No | |
| percent | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 mode-specific formulas, which is useful behavioral context, but it does not mention output format, rounding behavior, or edge cases beyond what the schema constraints (e.g., 'from' and 'whole' not zero) already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with the main purpose front-loaded and each mode listed clearly. The source URL is a minor but acceptable addition, and no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-mode calculator, the description covers all three modes and their input relationships, and the schema plus output schema fill in the remaining structural details. It is slightly incomplete only in not addressing when to prefer the specialized percentage sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters and their conditional requirements are already fully documented. The description reinforces mode-to-parameter mapping at a high level 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Work out percentages three ways,' and enumerates the three modes with their inputs and outputs. It is distinguishable from sibling calculators by describing a multi-mode tool, though it does not explicitly name alternative tools like hopi_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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what each mode computes, but gives no guidance on when to use this general calculator versus the specialized sibling calculators such as percentage_change, percentage_increase, or percentage_difference. There are no explicit exclusions or alternative tool recommendations.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | The end value | |
| from | Yes | The starting value (not zero) |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| change | No | |
| summary | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| absoluteChange | No |
TDQS
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 useful behavioral detail that a positive result means an increase and a negative result means a decrease, but it does not disclose other behaviors such as rounding or precision. This is acceptable for a simple calculator but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences plus a source link. It front-loads the primary purpose, immediately clarifies the base and result interpretation, and contains zero fluff. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with 100% schema coverage, read-only/idempotent annotations, and an output schema present, the description covers the essential behavior and interpretation well. It could be more complete by explicitly differentiating from sibling percentage tools, but nothing critical for basic invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters already have clear descriptions ('The end value' and 'The starting value (not zero)'). The description's phrase 'using the starting value as the base' mildly reinforces the role of the 'from' parameter but adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Work out the percentage change from a starting value to an end value') and specifies the calculation base ('using the starting value as the base'), which adds precision. However, it does not explicitly distinguish itself from closely related siblings such as hopi_percentage_difference_calculator, hopi_percentage_increase_calculator, or hopi_percentage_decrease_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case through the base rule and the positive/negative sign interpretation, but it never explicitly names alternatives or states when not to use this tool. For an agent choosing among several percentage calculators, the absence of explicit routing guidance is a noticeable gap.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | The starting number | |
| percent | Yes | The percentage to take off |
Output Schema
| Name | Required | Description |
|---|---|---|
| number | No | |
| result | No | |
| percent | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| amountTakenOff | No |
TDQS
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 behavioral detail about the output: it reveals both the new value and the amount taken off, which goes beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core operation and output, followed by a concrete example and a source URL. All sentences contribute value without redundancy. The source URL is slightly extra but does not hurt clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values in detail. It covers the operation, the output expectations, and an example, while annotations handle the safety attributes. The tool is simple, and the description is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters described ('The starting number' and 'The percentage to take off'). The description's example (250 decreased by 15 percent) clarifies that percent is a percentage value, not a decimal, but this adds minimal semantic value over the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Decrease a number by a percentage and see the new value and the amount taken off.' This identifies the specific verb-resource relationship and distinguishes it from sibling calculators like increase, change, and difference. The example further solidifies the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs to decrease a number by a percentage, but it does not explicitly address when not to use it or mention alternative tools. Sibling tools like hopi_percentage_increase_calculator exist, but no guidance is given on choosing between them. This is implied usage, not explicit routing.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | The first value | |
| b | Yes | The second value |
Output Schema
| Name | Required | Description |
|---|---|---|
| a | No | |
| b | No | |
| gap | No | |
| average | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| percentageDifference | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint, covering the safety profile. The description adds behavioral context about the formula and symmetry, which is valuable. It does not mention edge cases like division by zero when both values are zero, but given the annotations, this is a minor gap. The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the purpose and formula. There is no fluff; the symmetry note and source link are relevant and efficiently placed. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with two numeric parameters and an output schema (as indicated), the description is largely complete. It explains the formula, symmetry, and provides a source. It does not discuss edge cases (e.g., both values zero) or output format, but the output schema likely covers the latter. The description is adequate 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters (a and b), so the schema already documents them as 'The first value' and 'The second value'. The description adds meaningful context: that order does not matter due to symmetry, and that they are the two values for percentage difference. This enriches the parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb 'Work out' and resource 'percentage difference between two values', and explicitly specifies the average-based formula. This distinguishes it from sibling tools like percentage_change_calculator and percentage_increase/decrease calculators, which use different formulas. The mention of symmetry further clarifies the exact calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by explaining the average-based formula and the symmetry property, which differentiates it from percentage change tools. However, it does not explicitly name alternatives or state when not to use it. An agent can infer usage from the formula description, but explicit guidance would be stronger.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | The starting number | |
| percent | Yes | The percentage to add on |
Output Schema
| Name | Required | Description |
|---|---|---|
| number | No | |
| result | No | |
| percent | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| amountAdded | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, and the description adds what the operation produces (new value plus amount added) with an example. For a stateless calculator, this is sufficient behavioral context; no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the operation and output before the example. The source URL is an extra detail not needed for invocation, but overall the description is tight and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter calculator with 100% schema coverage, an output schema, and full safety annotations, the description plus example leaves no necessary gap. The agent can select and call it correctly with the information given.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with clear descriptions ('starting number', 'percentage to add on'). The description reinforces that percent is a percentage value via the 15% example but adds little beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise operation ('increase a number by a percentage') and what it returns ('the new value and the amount added'), with a concrete example. This clearly separates it from sibling percentage_change, percentage_decrease, percentage_difference, and generic percentage_calculator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'increase a number by a percentage' gives an implicit but clear when-to-use condition, and the 250/15% example makes the intended input concrete. It does not explicitly name alternatives or give when-not-to-use guidance, 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_position_size_calculatorPosition size calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| risk | Yes | Percentage of the account to risk on this trade (above 0, up to 100) | |
| stop | Yes | Stop-loss price per unit | |
| entry | Yes | Entry price per unit | |
| account | Yes | Total account size |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| units | No | |
| summary | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| unitsString | No | |
| amountAtRisk | No | |
| positionValue | No | |
| amountAtRiskString | No | |
| positionValueString | No | |
| stopDistancePercent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior, so the description need not restate those. It adds important behavioral context beyond the schema: results are 'treated as GBP' and the expected return fields are named, which helps the agent anticipate the tool's output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: purpose first, then inputs, then outputs, then the important GBP assumption and source. Every sentence earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only calculator with full parameter schema coverage and an output schema, the description covers the purpose, inputs, outputs, and currency assumption. Nothing an agent needs to select and 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter already has a meaningful description. The tool description names the same inputs ('account size, risk percentage, entry price and stop-loss price') and frames them in relation to the calculation, but it does not materially add semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('work out') and identifies the exact resource: position size based on risk percentage, account size, entry, and stop-loss. It also lists the outputs ('units to buy, position value, amount at risk and stop distance'), making the tool's purpose unambiguous even among many sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening sentence gives clear situational context: use this when you need to size a position so that hitting a stop-loss loses a chosen percentage of the account. It does not explicitly name alternative tools or state when not to use it, but the use case is distinct enough that an agent can infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_power_converterPower converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to | |
| from | Yes | Unit to convert from | |
| value | Yes | The power value to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| value | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 defining the unit abbreviations (hp as mechanical horsepower, ps as metric horsepower) and citing a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundant words. The action, unit list, and source are all front-loaded and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity converter with an output schema present)Skip, the description is sufficient: it lists units itself and points to the source. Additional rounding/precision details would be nice but are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description supplements this by clarifying the exact meanings of 'hp' and 'ps', which is genuinely helpful beyond the raw enum labels.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Convert') and resource ('power'), with an exact list of supported units. It doesn't explicitly distinguish from sibling converters, but the name and description are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and description ('Convert power from one unit to another'), but no explicit when-to-use or alternative-routing guidance is provided. For a unit converter, this is adequate though not thorough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_pressure_converterPressure converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to | |
| from | Yes | Unit to convert from | |
| value | Yes | The pressure value to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| value | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 as attribution and expands unit abbreviations, but does not disclose details like rounding or precision behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the action, the supported units, and the source. The core function is front-loaded and 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple stateless converter with 3 fully documented parameters, 2 enum-based parameters, an output schema, and complete safety annotations, the description covers everything an agent needs. The source URL is a small bonus. No meaningful gaps exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented with type, enum, and description. The description adds genuine value by expanding abbreviations ('psi (pounds per square inch)', 'kpa (kilopascals)'), which helps an agent understand the unit enums beyond the raw strings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Convert pressure from one unit to another.' The explicit unit list (bar, psi, kpa, atm) makes the domain unambiguous and cleanly distinguishes it from sibling converters like hopi_length_converter, hopi_power_converter, and hopi_volume_converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the tool's domain and supported units explicit, giving an agent clear context for when to select it among a large sibling family of converters. It does not state exclusions or name alternative tools, but for a single-purpose conversion utility 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_prime_factorisation_calculatorPrime number & factor calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | A whole number from 2 to 1,000,000,000,000,000 |
Output Schema
| Name | Required | Description |
|---|---|---|
| number | No | |
| isPrime | No | |
| summary | No | |
| divisors | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| divisorCount | No | |
| primeFactors | No | |
| factorisation | No |
TDQS
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 meaningful behavioral context: it specifies the algorithm (trial division) and output format (power form for factors), which go beyond the annotations. It does not mention performance implications for large numbers, but the range is explicit. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core functions and includes the algorithm and source link in a compact manner. Every sentence adds value, and the structure is clean and easily scannable by an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values. It covers the input range, operations, and algorithm, and provides a source link. It lacks explicit performance caveats (trial division can be slow for large primes) but that is a minor gap. Overall, it is complete for typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'number' parameter includes min/max and a description). The tool description repeats the range but adds no new semantic information beyond the schema. It does not clarify units, formatting, or any additional parameter-specific details. Since the schema fully covers the parameter, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with specific verbs (check, break, count, list) and a specific resource (whole numbers 2 to 1e15). It covers multiple related operations (primality, factorization in power form, divisor count and listing), which distinguishes it from all sibling tools, none of which handle prime factorization. The title reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it obvious when to use this tool (for prime checks and factorization) but does not explicitly mention alternatives or exclusion conditions. Since there are no close sibling tools, the lack of explicit 'when-not-to-use' is minor. The range and algorithm hint (trial division) provide context for expected input size, but no explicit guidance on when to prefer another tool.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | Shop URL for the feed header (optional, must start with http:// or https://). | |
| rows | Yes | Product 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. | |
| title | No | Feed title. Default Product feed. | |
| currency | No | ISO 4217 currency code for prices, for example GBP. Default GBP. | |
| platform | No | Feed format. Default meta. | |
| description | No | Feed description (optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
| xml | No | |
| items | No | |
| errors | No | |
| skipped | No | |
| summary | No | |
| currency | No | |
| platform | No | |
| rowsRead | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly/idempotent annotations by detailing per-row validation, required fields, price format, availability/condition checks, HTTP link requirements, unique-id enforcement, and the skip-and-list behavior for invalid rows. It also discloses return contents: XML, counts, and errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences front-load the core purpose and validation behavior, then mention output and source. There is no filler, though the source URL is a minor extra that is not essential for invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent generator with a fully documented input schema and an output schema, the description covers supported platforms, validation rules, failure handling, and return values. Nothing essential is missing for an agent to select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so all parameters already have meaningful descriptions. The tool description adds an example price format ('12.99 GBP') but provides little additional per-parameter semantics beyond what the schema already contains, meeting the baseline without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific transformation ('Turn product rows into a platform-valid product feed'), enumerates the supported formats (Meta, Google Merchant, Atom, generic RSS), and describes validation and output. This clearly distinguishes it from the many unrelated hopi calculator/generator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is clear: an agent should call this when it has product rows and needs a platform-compliant feed. It does not explicitly name alternatives or when-not-to-use conditions, but no close sibling feed tool exists in the sibling list, so exclusions are not necessary.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hours | Yes | Your hours per week (greater than zero) | |
| fullTimeHours | Yes | Full-time hours per week (greater than zero) | |
| fullTimeSalary | Yes | Full-time annual salary in GBP (greater than zero) |
Output Schema
| Name | Required | Description |
|---|---|---|
| hours | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| proRataWeek | No | |
| proRataYear | No | |
| proRataMonth | No | |
| fullTimeHours | No | |
| fullTimeSalary | No | |
| fractionPercent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior. The description adds user-relevant specifics beyond annotations: returned values (yearly, monthly, weekly pay and fraction), amounts are GBP gross before tax, and the source link. No contradiction detected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose and method, returned values, then currency/tax context and source. Front-loaded and every sentence earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple, stateless calculator with fully documented parameters and an output schema. The description covers purpose, formula, outputs, currency, tax basis, and source, so an agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers all three parameters with descriptions and bounds (greater than zero), so baseline 3 applies. The description adds the ratio relationship between hours and fullTimeHours, but no additional per-parameter information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('work out'), the resource (pro rata salary), the method (scaling by ratio of hours to full-time hours), and the outputs (yearly, monthly and weekly pay and fraction of full-time). This clearly differentiates it from sibling calculators like hopi_hourly_to_salary or hopi_day_rate_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use for part-time hours scaled from a full-time salary. It does not explicitly name alternatives or state when not to use, but the scenario is unmistakable given the sibling landscape of salary-related calculators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_public_key_message_encrypterPublic key message encrypterARead-onlyIdempotentInspect
Encrypt a short message to an RSA public key (PEM), or decrypt base64 output with the matching private key (PEM), using RSA-OAEP with SHA-256. The key is parsed from PEM to DER and imported (SPKI for public, PKCS8 for private). Encrypt output is base64. RSA can only carry a small message directly (about 190 bytes for a 2048-bit key), so longer text is rejected. All processing is local via the browser WebCrypto API; nothing is uploaded. Source: https://hopi.co.uk/public-key-message-encrypter/
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The PEM key: a public key (BEGIN PUBLIC KEY) to encrypt, or a private key (BEGIN PRIVATE KEY) to decrypt | |
| mode | No | Whether to encrypt a message with a public key or decrypt base64 with a private key (default encrypt) | encrypt |
| text | Yes | The plaintext message to encrypt, or the base64 output to decrypt |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| output | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations (readOnly, idempotent, non-destructive) by disclosing that 'All processing is local via the browser WebCrypto API; nothing is uploaded', the exact key parsing pathway (PEM→DER, SPKI/PKCS8), that encrypt output is base64, and the hard size limit of ~190 bytes. This gives the agent essential behavioral expectations that annotations alone do not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences with the core action front-loaded, followed by algorithm details, constraints, privacy guarantee, and a source link. Every sentence earns its place; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a crypto utility: it covers the operation modes, key types, output format, size limits, failure behavior (rejection), privacy, and algorithm. Even with a rich schema and annotations, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter (key, mode, text) already has clear descriptions. The tool description adds context about the RSA size limit and local processing, but that is not parameter-specific. It does not materially enhance understanding of the individual parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete verb and resource: 'Encrypt a short message to an RSA public key (PEM), or decrypt base64 output with the matching private key (PEM)'. It names the algorithm (RSA-OAEP SHA-256) and clearly distinguishes it from file-oriented siblings like hopi_file_encrypter by specifying 'short message' rather than files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear operational context is provided: it states the exact inputs (PEM public/private keys, plaintext/base64), the optional mode, and the size limitation ('longer text is rejected'). It does not explicitly name alternatives or when-not-to-use, but the message-vs-file distinction from the description is enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_qr_code_readerQR code readerARead-onlyIdempotentInspect
Read (decode) a QR code from an image. Decoding needs the pixel data of an image the user selects, so this runs in the tool's page: the image is drawn to a canvas and scanned with jsQR entirely in the browser. Nothing is uploaded. Source: https://hopi.co.uk/qr-code-reader/
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations by disclosing that execution happens entirely in the browser, the image is drawn to a canvas and processed with jsQR, and nothing is uploaded. This privacy-relevant behavior is valuable context an agent cannot infer 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose, execution mechanism, privacy guarantee, and source attribution. The core function is front-loaded, and no redundant wording is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a zero-parameter tool. The description covers what the tool does, how it executes, what the user needs to do, and the privacy model. With an output schema present, return values need not be described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, and the description explains why: decoding requires pixel data from an image the user selects in the tool's page. This clarifies that the agent should not expect to pass an image argument, which is exactly the parameter guidance needed for an empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and object: 'Read (decode) a QR code from an image.' This clearly identifies the tool's function and differentiates it from the many calculator/converter siblings. No other sibling appears to perform QR decoding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the use case directly: decoding a QR code from an image selected by the user. It does not explicitly name alternatives or when-not-to-use conditions, but the surrounding sibling list contains no competing QR tool, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_random_colour_generatorRandom colour generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | No | |
| hsl | No | |
| rgb | No | |
| summary | No | |
| hslString | No | |
| rgbString | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, non-destructive, and idempotent safety. The description adds genuinely useful behaviour beyond that: the red, green, and blue channels are independent and each ranges from 0 to 255. This clearly explains how the random colour is produced without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that front-load the action and output, then add channel-range detail and a source link. Every sentence earns its place with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless random generator, the description fully covers purpose, output formats, and channel ranges. Combined with the safety annotations and output schema, nothing an agent needs to select and 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and the schema description coverage is 100%, so the baseline for no-parameter tools applies. The description's output-format detail does not need to compensate for any missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Generate a random colour') and the exact outputs ('hex, RGB and HSL values'). It clearly distinguishes itself from sibling colour conversion and palette/shade tools through the 'random' qualifier and the explicit mention of all three colour spaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates a clear use case: when a single random colour with its format conversions is needed. It does not explicitly name sibling alternatives such as colour_palette_generator or colour_shades_generator, so it stops just short of full alternative routing.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| decimals | No | Decimal places for each coordinate, 2 to 6 (default 4) | |
| quantity | No | How many points to generate, 1 to 100 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| points | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read profile is covered. The description adds valuable behavioral context beyond annotations: the coordinates are uniform by surface area, avoiding pole clustering, and are returned as decimal degrees. No contradiction with annotations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The key behavioral fact—uniform surface-area distribution—is front-loaded, and the source URL provides useful provenance without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has both parameters fully described in the schema, annotations cover its read-only/idempotent safety profile, and an output schema exists. The description adds the distinguishing distribution guarantee and output units, leaving no meaningful gaps 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (decimals and quantity) are already documented in the schema. The description adds only the decimal-degrees context, which is useful but not necessary, keeping this at the baseline for fully documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Generate random geographic coordinates,' and further defines the behavior as uniform by surface area. It also states the output format (lat/lon in decimal degrees), which clearly distinguishes it from sibling random generators like hopi_random_number_generator or hopi_random_word_generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when random geographic coordinates are needed—and adds a helpful distribution property. However, it does not explicitly state when not to use it or mention any 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_random_letter_generatorRandom letter generatorBRead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | Which letters to draw from (default any) | any |
| quantity | No | How many letters to generate, 1 to 100 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| set | No | |
| letters | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly says 'Generate random letters', implying non-deterministic output, which contradicts the idempotentHint=true annotation that suggests repeated calls with the same arguments produce the same result. This is a direct contradiction and actively misleads the agent about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main action, but the sentence 'Returns the letters as a list' is redundant given the output schema, and the source URL is not essential. Still, it is appropriately concise and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters, full schema coverage, and an output schema, the description covers the core purpose and return type. However, it lacks usage guidance and contains a behavioral contradiction with the annotations, leaving the agent with incomplete context about the tool's non-deterministic nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already well-documented. The description adds mild clarification with 'optionally limited to vowels or consonants' which maps to the 'set' enum, but it does not add meaningful formatting or syntax details beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates random letters from the alphabet, optionally limited to vowels or consonants, and returns them as a list. This specific verb+resource distinguishes it from sibling random generators like hopi_random_number_generator, hopi_random_word_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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternative random generators or other letter-related tools. No sibling tools are referenced and no context for choosing this tool is provided, leaving the agent to infer usage solely from the purpose.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| max | Yes | Highest possible number (inclusive) | |
| min | Yes | Lowest possible number (inclusive) | |
| unique | No | If true, no number repeats (default false) | |
| quantity | No | How many numbers to generate, 1 to 1000 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| max | No | |
| min | No | |
| unique | No | |
| numbers | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The core behavior ('random') contradicts the annotation idempotentHint=true: repeated calls with the same arguments can produce different numbers, so this tool is not idempotent. Since the description does not override or address that inconsistency, it gets the contradiction penalty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight, front-loaded sentences carry the entire behavior, followed by a useful source link. There is no filler, and the most decision-relevant information (range, randomness, returns) comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with complete schema descriptions and an output schema, the description is largely sufficient: it states the return type and optional uniqueness. However, it could have explicitly noted non-determinism to resolve the contradictory idempotentHint annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds little beyond it: 'whole numbers' restates the integer type, 'inclusive' appears in the schema's max/min descriptions, and 'no repeats' mirrors the unique parameter. It is adequate but adds no meaningful new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact operation ('generate random whole numbers'), the range semantics ('within a range, inclusive'), the optional uniqueness behavior, and the return shape (list). This clearly differentiates it from sibling random generators like hopi_random_letter_generator or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies the selection context: use it when the agent needs random integers in a range, optionally without repeats. It does not explicitly list when-not-to-use or name alternatives, but the boundary is clear enough against the many sibling random utilities.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | The list of names to split into teams | |
| teams | Yes | How many teams to make, 2 to 20 |
Output Schema
| Name | Required | Description |
|---|---|---|
| teams | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds that the distribution is even and that per-team members are returned, giving a bit of algorithmic context beyond the annotations. It doesn't address randomness quality or uneven-team edge cases, but the safety profile is already covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action, fitting the core behavior into one sentence. The 'Returns each team's members' result statement is useful. The source URL is a minor addition that doesn't aid invocation, but it's brief and doesn't detract meaningfully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with complete schema descriptions and an output schema, the description provides enough information for an agent to decide to call it and know what to expect. The only minor omission is handling of remainder cases when names aren't evenly divisible by team count, but that is unlikely to block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'names' and 'teams' already documented. The tool description only rephrases these as 'list of names' and 'set number of teams' without adding new format, constraints, or syntax details. The schema carries the semantic weight, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Shuffle a list of names and deal them evenly into a set number of teams') and the expected result ('Returns each team's members'). This clearly identifies the tool's purpose and differentiates it from the many random generators in the sibling list. It doesn't explicitly name a sibling, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you have a list of names and need to split them into teams. However, there is no explicit guidance about when not to use it or which alternatives (e.g., wheel_spinner, secret_santa_generator) might be preferable. Usage context is clear but not fully articulated.
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 generatorARead-onlyIdempotentInspect
Generate random everyday English nouns, with no repeats. Returns the words as a list. Source: https://hopi.co.uk/random-word-generator/
| Name | Required | Description | Default |
|---|---|---|---|
| quantity | No | How many words to generate, 1 to 20 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| words | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds useful behavioral facts beyond annotations: no repeats within the generated set and that words are returned as a list. No contradiction with the annotations was found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the core behavior and return shape without fluff. The source URL is brief and does not detract from the operational clarity. It is a model of concise tool documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only generator with an output schema, the description is complete: it states what is generated, the uniqueness behavior, the return format, and is backed by annotations and schema for safety and parameter constraints. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single quantity parameter, including default, minimum, maximum, and a clear description. Description adds no parameter-level insight, but the schema already carries the burden, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ("Generate"), a specific resource type ("random everyday English nouns"), and adds the qualifier "no repeats" plus a return format. This clearly distinguishes it from sibling tools like random_letter_generator, random_number_generator, and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The noun-scoped description gives clear contextual guidance: use this tool when random everyday English nouns are needed. However, it does not explicitly name alternatives or state when not to use it, 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_ratio_calculatorRatio calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First term of the ratio (positive) | |
| b | Yes | Second term of the ratio (positive) | |
| c | No | Known term of the equivalent ratio, mode 'solve' (a : b = c : x) | |
| mode | Yes | 'simplify' a ratio, or 'solve' for the missing value |
Output Schema
| Name | Required | Description |
|---|---|---|
| a | No | |
| b | No | |
| mode | No | |
| oneToN | No | |
| decimal | No | |
| summary | No | |
| simplified | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| simplifiedA | No | |
| simplifiedB | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the constraint 'All inputs must be positive', which is a useful behavioral note, and describes the cross-multiplication method for solve mode. It does not mention error handling or output details, but the annotations lower the burden, so this is a reasonable score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, then expanding into modes. Every sentence contributes essential information—the two operations, the positive-input requirement, and a source reference. There is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (two modes, four parameters) and the presence of an output schema (per context signals), the description covers the operational semantics well. It explains the formulas and constraints, and the output schema presumably covers return values. The only minor gap is the absence of any mention of expected output structure, but that is likely addressed by the output schema. Overall, this is near-complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented (a, b, c, mode). The description adds context by explaining the ratio format (a : b = c : x) and the positive-input rule, but these are also implied in the schema (exclusiveMinimum). The added value is minimal beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: 'Work with ratios' and then details two distinct modes: 'simplify' and 'solve', each with a clear action (reduce a ratio, find missing value). This is far from a tautology and distinguishes the tool from other ratio-adjacent siblings like hopi_aspect_ratio_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use each mode ('simplify' vs 'solve'), which effectively tells an agent how to choose between the tool's own capabilities. However, it does not mention any alternative tools or exclusions (e.g., when to prefer a different calculator). This 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_reading_time_calculatorReading time calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to measure |
Output Schema
| Name | Required | Description |
|---|---|---|
| words | No | |
| summary | No | |
| aloudTime | No | |
| silentTime | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 goes beyond those by disclosing the exact calculation rates (225 wpm silent, 130 wpm read-aloud), the fact that word count is included, and the source URL. This gives the agent a clear model of what will happen.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main purpose is front-loaded, followed by concrete output details and a source attribution, every sentence earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-input, simple calculator with an output schema, the description covers the input, the computation details, and the return values. Nothing needed for correct invocation is missing, and 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the text parameter already described as 'The text to measure.' The description reinforces this by referring to 'a block of text' but adds no additional format, length, or encoding guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Estimate') and resource ('how long a block of text takes to read'), and differentiates the tool from text-measurement siblings like hopi_word_counter and hopi_character_counter by focusing on reading time. It also names the exact outputs: silent reading time, read-aloud time, and word count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: whenever the user needs a reading-time estimate for a text block. It doesn't name alternatives or exclusions, but the context is unambiguous and no sibling directly competes with this purpose.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Age at redundancy (15 to 100) | |
| years | Yes | Full years of continuous service (0 to 60, cannot exceed age) | |
| weeklyPay | Yes | Gross weekly pay in GBP |
Output Schema
| Name | Required | Description |
|---|---|---|
| age | No | |
| total | No | |
| weeks | No | |
| years | No | |
| summary | No | |
| weeklyPay | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| totalCapped | No | |
| serviceCapped | No | |
| cappedWeeklyPay | No | |
| weeklyPayCapped | No |
TDQS
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: the count-back method, the cap amounts (£751 weekly, £22,530 total), the service threshold, and the effective date. This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the core purpose and then packs in the essential calculation rules, caps, eligibility, and source. Every clause earns its place; there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a calculator tool: it explains the formula, the caps, the eligibility threshold, the currency, and the source. The output schema exists, so return values don't need to be described. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (age, years, weeklyPay). The description adds context about how the parameters are used (e.g., age bands, weekly pay cap) but doesn't add new parameter-level 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.
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 redundancy pay'), and a clear scope ('for redundancies on or after 6 April 2026'). It also names the calculation method and source, making it easy to distinguish from other calculator 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the context for use (UK statutory redundancy pay) and includes eligibility criteria ('At least 2 full years of service are needed'). It doesn't explicitly name alternatives or when not to use it, but the specificity of the tool makes the intended use unambiguous.
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 removerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to deduplicate, one item per line | |
| caseInsensitive | No | Treat lines that differ only in case as duplicates (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kept | No | |
| result | No | |
| removed | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 behavioral detail beyond those: first-occurrence retention, original-order preservation, optional case-insensitive matching, and the returned counts of kept/removed lines. This gives an agent a clear picture of the operation's observable effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with three sentences that each add value: core behavior, optional case handling, and return information. There is no filler or repetition of schema data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema and rich annotations, the description is complete. It explains what the tool does, how it handles duplicates, the optional case-insensitive behavior, and what the caller will receive. No critical operational details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well. The description adds context about first-occurrence retention and return values, but does not need to re-explain parameter syntax. It reinforces the caseInsensitive behavior without going beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Remove duplicate lines from a block of text'. It also states the key behavior, keeping the first occurrence in original order, which clearly distinguishes it from other text-manipulation sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's intended use is implied strongly by the description: deduplicate lines while preserving order. It clearly explains the optional case-insensitive mode and the return value, giving an agent enough context to decide when to invoke it. It does not explicitly name alternatives or exclusion conditions, but the function is distinct enough among siblings that this 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_remove_extra_spacesRemove extra spacesARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to clean | |
| removeBlankLines | No | Also drop empty lines (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| lines | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only, idempotent operation, and the description goes well beyond them by specifying exactly what is collapsed, what is trimmed, what optional behavior exists (remove blank lines), and what is preserved (line breaks). This fully discloses the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences plus a source link, with no filler. The core behavior is front-loaded, the optional parameter is mentioned, and the key exclusion (line breaks kept) is included in the same compact description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter text-transform tool with strong schema coverage and an output schema, the description covers everything an agent needs: input, optional behavior, and preservation semantics. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers both parameters at 100%, so the baseline is 3. The description adds extra meaning by clarifying that 'text' may contain tabs and non-breaking spaces and that 'removeBlankLines' interacts with line structure but does not remove line breaks themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('tidy up'), the resource ('text'), and precise behavior: collapsing spaces, tabs, and non-breaking spaces to a single space and trimming each line. The note that line breaks are kept clearly distinguishes it from siblings like 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case clear: cleaning intra-line whitespace while preserving line structure. It does not explicitly name alternatives or say 'use instead of X', but the line-break behavior implicitly rules out related tools such as hopi_remove_line_breaks and hopi_remove_duplicate_lines.
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 breaksARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'spaces' joins everything into one block (default), 'paragraphs' keeps paragraph breaks | spaces |
| text | Yes | The text to join |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful behavioral detail beyond the schema, such as joining with single spaces and preserving blank lines between paragraphs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core action first and mode details following. The source URL is minor extra context but does not detract from clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema, full parameter documentation, and annotations, the description provides everything an agent needs to select and invoke this tool correctly. Mode behavior is fully explained, and 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline is 3. The description adds value by specifying that 'spaces' mode joins lines with single spaces and that 'paragraphs' mode preserves the blank line between paragraphs, which is more detailed than the schema's mode descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource, 'Remove line breaks from text', and then distinguishes the two operating modes with concrete behavior. This sets it apart from nearby sibling text tools like remove_duplicate_lines and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains when each mode applies: 'spaces' joins all lines and 'paragraphs' preserves blank-line paragraph breaks. It does not explicitly name alternatives or state when not to use the tool, 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_reverse_textReverse text generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'characters' (default), 'words' reverses word order per line, 'each' reverses letters within each word | characters |
| text | Yes | The text to reverse |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds meaningful behavioral detail beyond those hints: character-by-character reversal, line-scoped word reversal, and the word-order-preserving behavior of 'each'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact, front-loaded, and has no filler. Each sentence contributes either an overview of the operation or a precise mode definition, and the source link is a small, non-intrusive addition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, pure text transformation with strong annotations, an output schema, and fully documented parameters, the description covers everything an agent needs to select and invoke the tool correctly. No critical behavioral or usage gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds extra meaning to parameter behavior: it clarifies that 'characters' applies to the entire text, that 'words' operates on each line, and that 'each' preserves word order while reversing letters. This is more nuance than the schema's brief enum descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Reverse text') and defines the three exact modes, so an agent knows precisely what operation this tool performs. The mode definitions go beyond the name/title and make the tool's scope clear relative to other text-manipulation siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance on selecting among the three modes ('characters', 'words', 'each'), which is useful for invocation. However, it does not explicitly state when to prefer this tool over alternatives or mention any exclusions, so 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_rgb_to_hexRGB to hex converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| b | Yes | Blue, 0 to 255 | |
| g | Yes | Green, 0 to 255 | |
| r | Yes | Red, 0 to 255 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | No | |
| summary | No | |
| rgbString | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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, pure conversion. The description adds the important output detail that the hex code is uppercase, which is not covered by annotations or schema. It also includes a source link, providing provenance. This goes beyond the structured annotations and adds meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that states the core function and output format immediately. The appended source URL is optional but not disruptive. It is front-loaded with the essential action and has no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool with a complete schema, an output schema, and comprehensive annotations (read-only, idempotent, non-destructive), the description provides all necessary context. The agent can call it correctly without additional information. The output format is already captured by the existing output schema, so the description need not elaborate further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (r, g, b) individually described as a color channel with a 0-255 range. The description repeats this range in prose but adds no new meaning beyond what the schema already provides. Since the schema fully documents the parameters, the baseline of 3 is appropriate; the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: converting red, green, and blue integer values (0-255) to an uppercase hex color code. It specifies the exact resource and output format. However, it does not explicitly differentiate from sibling tools like hopi_hex_to_rgb, though the direction is obvious from the wording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you have RGB values and need hex), but provides no explicit alternatives or exclusion criteria. It does not mention when not to use it or distinguish it from similar color converters. The usage guidance is implicit 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_ring_size_converterRing size converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Which scale the value is in | |
| value | Yes | The ring size to convert: a UK letter (uk mode), or a number (us or mm mode) |
Output Schema
| Name | Required | Description |
|---|---|---|
| uk | No | |
| us | No | |
| mode | No | |
| summary | No | |
| diameterMm | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| circumferenceMm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the read-only nature. The description adds behavioral context beyond annotations by specifying input ranges (UK F to Z, US 2.75 to 12.75, mm 44 to 69) and the return set (UK size, US size, circumference, inside diameter). It also notes the source. This is valuable additional transparency about expected inputs and outputs, though it does not discuss error handling for out-of-range values, which is a minor omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the purpose, then systematically detailing each mode's input format, then the return values, and finally the source. Every sentence contributes necessary information without redundancy. It is well-structured for quick parsing by an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three modes, specific input ranges, and a defined output set, the description covers all essential information: modes, input formats, ranges, and return values. It also cites the source for verification. An agent has everything needed to call the tool correctly without additional lookups. The output schema likely further specifies the return structure, but the description already provides sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides basic descriptions for mode and value, but the description significantly expands on them: it explains the exact format for each mode (e.g., 'N' or 'N 1/2' for UK half sizes), the acceptable ranges, and clarifies that value is a string even for numeric modes. This adds meaningful semantics beyond the schema, which had only a generic description for value. Schema coverage is 100%, but the description enriches the meaning substantially.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Convert a ring size between UK, US and millimetre scales.' It clearly identifies the three modes and the tool's scope, distinguishing it from other hopi converters by its unique domain. The purpose is unambiguous and immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool (when a ring size needs conversion between UK/US/mm), and the mode parameter tells the agent exactly which input scale to provide. However, it does not explicitly list alternatives or state when not to use it, though given the highly specific domain, this is a minor gap. The context is clear 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_robots_txt_generatorRobots.txt generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| rules | No | Custom rules, each an object with agent, directive and path | |
| preset | No | Use a ready-made rule set instead of custom rules | |
| sitemap | No | Optional sitemap URL for the Sitemap line |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | No | |
| robotsTxt | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is established. The description adds useful output semantics (grouping by user agent, optional sitemap) but does not need to disclose side effects. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences plus a source link; every clause carries operational information. There is no redundant repetition of schema or annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, schema, and annotations together cover inputs, generation modes, safety, and output. The conditional custom-preset requirement is handled by the schema, and an output schema exists, so 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully documented in the schema, including defaults for agent and directive. The description adds meaning by expanding the preset enum into 'allow all', 'block all', 'wordpress' and by connecting the custom rules array to the grouping by user agent, going slightly beyond the bare schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Build a robots.txt file') and the exact input domain (allow/disallow rules grouped by user agent), plus an optional sitemap line. This distinguishes it from other sibling generator tools and matches the tool name while adding operational detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies two mutually exclusive usage modes: pass a preset ('allow', 'block', 'wordpress') or provide a custom rules array, and notes sitemap as optional. It does not enumerate sibling alternatives or exclusion criteria, but since this is a unique, non-stateful generator, the 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_roman_numerals_converterRoman numerals converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | A whole number from 1 to 3999, or a Roman numeral using I, V, X, L, C, D and M |
Output Schema
| Name | Required | Description |
|---|---|---|
| roman | No | |
| number | No | |
| summary | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds the range limit, auto-detection of direction, and a source URL, which are useful behavioral details beyond the annotations. It does not contradict annotations and no error handling is mentioned, but that is minor given the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no waste. Purpose and range are front-loaded, followed by examples and direction detection, and a source link. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter, an output schema exists, and annotations cover read-only and idempotent behavior. The description explains the input range and auto-detection. It does not explicitly mention error handling for invalid inputs, but that is a minor gap given the tool's simplicity and existing schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the 'value' parameter, so baseline is 3. The description adds examples (2026, MMXXVI) and explains direction auto-detection, which enriches the parameter meaning beyond the schema's simple type and pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Convert' and resource 'between numbers and Roman numerals', both directions, for whole numbers 1-3999. It clearly distinguishes this from sibling converters like number_base_converter or number_to_words by specifying Roman numeral conversion and auto-detection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the scope (1-3999) and gives examples for both input types, implicitly indicating when to use this tool. However, it does not explicitly mention alternatives or exclusion criteria, so it lacks the full 'when-not' guidance for a 5.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'dp' for decimal places, or 'sf' for significant figures | |
| count | Yes | How many decimal places (0 to 12) or significant figures (1 to 15) | |
| number | Yes | The number to round |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| count | No | |
| number | No | |
| rounded | No | |
| summary | No | |
| formatted | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds the critical behavioral detail that halves are always rounded away from zero, which is not in the annotations. It also specifies valid ranges per mode. This adds value beyond structured data without contradicting any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core action, and contains no fluff. It efficiently conveys the rounding rule, mode options, and ranges. The source URL is a minor extra but does not detract from clarity. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only calculator with full schema coverage and an output schema, the description covers all necessary behavioral and usage details: rounding rule, mode semantics, and parameter ranges. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter documented. The description repeats the mode meanings and count ranges that are already in the schema, adding little new information. It does not clarify anything beyond what the schema provides, so it 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Round') and resource ('a number'), and distinguishes between two modes (dp and sf) with explicit ranges. It also discloses the rounding rule for halves. This clearly identifies the tool's purpose and differentiates it from other calculator siblings without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (for rounding numbers) and provides mode-specific usage constraints. It does not explicitly name alternatives or exclusion conditions, but given the tool's unique function among siblings, the context is clear enough. No misleading guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_running_pace_calculatorRunning pace calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Which value to solve for | |
| unit | No | Unit for distance and the given pace. Default 'km' | km |
| distance | No | Distance in the chosen unit (needed for 'pace' and 'time' modes) | |
| paceSeconds | No | Pace in seconds per unit (needed for 'time' and 'distance' modes) | |
| timeSeconds | No | Total time in seconds (needed for 'pace' and 'distance' modes) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kph | No | |
| mph | No | |
| mode | No | |
| time | No | |
| unit | No | |
| summary | No | |
| distance | No | |
| pacePerKm | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| pacePerMile | No | |
| timeSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent behavior, so the description adds context beyond that by specifying the return values (pace per km and per mile, speed in km/h and mph, distance, total time) and the source URL. This is valuable, though it doesn't mention edge cases or error behavior, which is minor for a calculator.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that leads with the purpose, then details mode requirements, and ends with output details and source. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all necessary aspects: the three modes, required parameters per mode, unit handling, and the returned fields. Combined with the output schema and annotations, an agent has everything needed to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage, but the description adds meaning by explaining the mode-dependent parameter relationships and clarifying that paceSeconds is 'seconds per unit' and that distance is in the chosen unit. This goes beyond the schema's individual field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Work out running pace, finish time or distance, in kilometres or miles.' It identifies the specific resource (running pace calculator) and the three modes (pace, time, distance), making it distinct from the many sibling calculators and converters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool and how: it details the input requirements for each mode (e.g., 'mode 'pace' needs distance and timeSeconds'). While it doesn't compare to alternatives, the tool's unique focus on running pace makes the appropriate use case clear.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Direction of conversion | |
| value | Yes | The amount to convert: whole satoshis for sats_to_btc, or a BTC amount for btc_to_sats |
Output Schema
| Name | Required | Description |
|---|---|---|
| btc | No | |
| bits | No | |
| mbtc | No | |
| mode | No | |
| sats | No | |
| display | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses 'exact whole-satoshi integer maths' and the canonical 1 BTC = 100,000,000 satoshis relationship, plus a source URL. This adds useful behavioral context without contradicting the annotations. Edge cases for negative or zero values are not discussed, but the output schema reduces the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, purposeful sentences: the action is front-loaded, the precision detail follows, and the source URL closes it. No filler or 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.
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 100% schema coverage, an output schema, and readOnly/idempotent annotations, the description is fully sufficient. Nothing critical an agent needs to select and invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds real value by explaining the unit relationship and the whole-satoshi integer-math constraint, which clarifies how the 'value' parameter is interpreted in both modes. This is a modest but meaningful addition beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Convert'), the exact resource (satoshis, BTC, mBTC, bits), and explicitly covers both conversion directions. This clearly distinguishes it from the many other converter/calculator siblings by naming the Bitcoin-specific unit domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the two supported modes explicit ('Convert satoshis to BTC, mBTC and bits, or convert BTC to satoshis, mBTC and bits'), so an agent can determine exactly when to invoke it. It does not name alternative tools or exclusions, but the Bitcoin unit domain is specific enough that misrouting is unlikely.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'time' finds the time to reach the goal; 'monthly' finds the monthly saving needed | |
| rate | Yes | Annual interest rate as a percentage | |
| start | No | Starting balance in GBP (default 0) | |
| years | No | Monthly mode: number of years to reach the goal | |
| target | Yes | Savings target in GBP (greater than zero) | |
| monthly | No | Time mode: monthly deposit in GBP |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| rate | No | |
| start | No | |
| months | No | |
| target | No | |
| monthly | No | |
| summary | No | |
| interest | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| timeToReach | No | |
| totalPaidIn | No | |
| finalBalance | No |
TDQS
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 valuable behavioral context: monthly compounding, GBP amounts, and the relationship between deposit, target, and time. No statement 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-load the core purpose and mode distinction before the optional settings and currency. Every sentence contributes distinct information with no repetition, filler, or restating of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complete input schema, explicit conditional requirements, and an output schema, the description supplies the essential behavioral context an agent needs: mode selection, monthly compounding, optional inputs, and currency. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter and the baseline of 3 applies. The description adds only broad context such as 'optional starting balance' and 'Amounts in GBP' rather than new per-parameter semantics. The schema's conditional requirements already handle mode-specific parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair ('Plan a savings goal') and immediately clarifies the behavior with 'compounded monthly', 'time' mode, and 'monthly' mode. It is clear and unambiguous, but it does not explicitly differentiate itself from siblings such as 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mode descriptions provide clear conditional usage guidance: use 'time' when the monthly deposit is known and the duration is sought, and 'monthly' when the years are known and the deposit is sought. It also notes the optional starting balance and annual interest rate. It does not mention alternatives or exclusions relative to other hopi tools.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | For type 'local': website URL | |
| faqs | No | For type 'faq': questions and answers | |
| name | No | For type 'local': business name | |
| town | No | For type 'local': town or locality | |
| type | Yes | The schema type to build | |
| hours | No | For type 'local': opening hours | |
| items | No | For type 'breadcrumb': ordered pages | |
| phone | No | For type 'local': telephone | |
| author | No | For type 'article': author name | |
| street | No | For type 'local': street address | |
| headline | No | For type 'article': the headline | |
| modified | No | For type 'article': date modified | |
| postcode | No | For type 'local': postal code | |
| published | No | For type 'article': date published |
Output Schema
| Name | Required | Description |
|---|---|---|
| html | No | |
| type | No | |
| jsonLd | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 only needs to add behavioral context. It adds that the tool returns 'the JSON-LD object and a ready-to-paste script snippet,' and 'Build valid...' signals a pure generation operation. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler; the purpose, supported types, and return format are all front-loaded. The source URL is arguably extra, but it does not bloat the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The rich schema with conditional requirements and per-type parameter descriptions carries most of the invocation logic, and an output schema exists, lowering the burden on the description. The description provides the missing overview of which schema types are supported and what the output looks like, making it sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all 14 parameters, each prefixed with the applicable type, so schema coverage is 100%. The description only restates the supported types at a high level and adds no per-parameter format or constraint details beyond what the schema already states, so it meets the baseline but doesn't exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Build valid JSON-LD structured data using schema.org.' It then enumerates the supported content types (FAQ pages, articles, local businesses, breadcrumb lists), which clearly scopes the tool and differentiates it from the many sibling calculators and converters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing supported types and the return value, but it does not explicitly state when to choose this tool over alternatives or when not to use it. Sibling tools are mostly calculators and converters, so there is no direct substitute, but no explicit selection guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_scientific_calculatorScientific calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| angleMode | No | Angle units for trigonometry: 'deg' (default) or 'rad' | deg |
| expression | Yes | The maths expression, e.g. '2 + 3 * 4', 'sin(30)', 'sqrt(2)^2', '5!' |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | |
| summary | No | |
| angleMode | No | |
| formatted | No | |
| expression | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 well-covered. The description adds context on supported operators and constants, but does not disclose behaviors like error handling, precision, or output format. Since annotations carry the safety burden, this is acceptable but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that leads with the core purpose, then lists features compactly. There is no wasted wording, and the source link is the only non-essential element, but it does not detract. It is efficiently structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema is present, the description need not explain return values. It thoroughly covers expression syntax and angleMode. The only gap is error handling for invalid expressions, which is minor for a calculator. Overall, it provides enough context for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters have clear descriptions. The tool description goes beyond the schema by enumerating the full set of supported operators, functions, and constants, and clarifying the meaning of '%' as divide by 100. This adds genuine value to parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates a maths expression following BODMAS, which is a specific verb and resource. It lists supported operators and functions, making it unambiguous and distinct from sibling calculators like percentage or fraction calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any explicit guidance on when to use this tool versus alternative calculators. It never mentions conditions for selection or alternatives. The only usage-related note is about angleMode, which is parameter guidance, not tool selection guidance.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | The list of participant names (at least two, no duplicates) |
Output Schema
| Name | Required | Description |
|---|---|---|
| pairs | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/destructive annotations, the description discloses key behavioral guarantees: the result is a derangement, no one gives to themselves, and every participant gives to exactly one person. It also states the return shape ('giver to receiver pairs'), which is genuinely useful and not contained in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core purpose, and includes only a few clarifying sentences. The source URL is a minor addition that is not needed for invocation, so it does not quite earn top marks for zero-waste conciseness, but the overall structure is excellent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has one fully documented parameter, an output schema, and annotations covering safety. The description explains the algorithm's guarantees and return format, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, names, is already fully documented in the schema with type, minimum size, and duplicate restriction. The description's mention of 'list of names' adds little beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Draw Secret Santa gift pairings from a list of names.' This clearly identifies the operation and distinguishes it from the many sibling generators on the list. The added constraints ('every person gives to exactly one other person, nobody assigned to themselves') further sharpen the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when the tool is appropriate: when you need Secret Santa pairings from a list of names. It does not explicitly name alternative tools or state when not to use it, but the use case is unambiguous enough that an agent should select it confidently.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| sex | Yes | Which sizing chart to use | |
| ukSize | Yes | UK shoe size (whole or half, e.g. 8 or 8.5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| eu | No | |
| uk | No | |
| us | No | |
| sex | No | |
| note | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe, non-destructive operation. The description adds valuable context by noting the conversion is 'approximate' and specifying the half-step constraint, which affects output expectations. It also cites a source, implying data reliability. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, with the main action front-loaded. It includes essential parameter guidance and a source reference without unnecessary fluff. Every sentence contributes to understanding the tool's behavior and constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter conversion tool with an output schema present, the description covers all necessary aspects: the operation, parameter ranges, step constraints, and data source. The agent has enough information to call the tool correctly without needing additional explanation of return values, which the output schema handles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds value by explicitly stating the valid UK size ranges per sex ('men (UK 5 to 13) or women (UK 2 to 9)'), which clarifies the conditional constraints in the schema. This guidance is more accessible than the allOf/if-then structure, aiding correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: converting a UK shoe size to approximate EU and US sizes. It specifies the resource (UK shoe size) and the target outputs, and differentiates from other converters by being shoe-specific. The verb 'convert' and the explicit output make the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to use the tool, including valid ranges for men and women and the requirement for whole or half sizes. It doesn't explicitly mention alternatives or when not to use it, but given the unique nature of the tool among many converters, the usage context is clear. No exclusions are stated, but the guidance is sufficient for an agent to know when to invoke it.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'wake' to find bedtimes from a wake time, or 'bedtime' to find wake times from a bedtime | |
| time | Yes | The known time as 'HH:MM' (24-hour): the wake time for mode 'wake', or the bedtime for mode 'bedtime' |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| time | No | |
| options | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate read-only, idempotent, non-destructive behavior; the description adds meaningful algorithmic context: the 15-minute fall-asleep buffer, the 90-minute cycle formula, and that 6/5/4/3 cycle options are returned. It also discloses the time format ('HH:MM' 24-hour), which helps set expectations. Nothing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-load the purpose, then compactly cover both mode semantics, formulas, cycle counts, time format, and source. No filler or repetition of schema content; the formula lines earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter calculator with a full input schema and an output schema, the description is complete: it states the algorithm, inputs, options, and output time format. The source attribution adds provenance without bloating. Edge-case behavior is not spelled out, but the low complexity and existing schemas make that non-critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters at 100%, but the description still contributes value by translating the mode parameter into concrete formulas (wake - 15 - cycles x 90 and bedtime + 15 + cycles x 90). This makes the meaning and interaction of mode and time explicit beyond the enum descriptions. The time format is reinforced in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource: 'Suggest sleep times using 90-minute cycles plus 15 minutes to fall asleep.' It enumerates two distinct modes ('wake' vs 'bedtime'), making the tool's function unmistakable and distinguishable from the many converter/calculator siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives operational guidance by explaining exactly what each mode computes and provides formulas for both directions. It doesn't explicitly name alternatives, but among the sibling list there is no other sleep-calculator tool, so mode selection itself is the main usage decision and is fully covered. It stops short of stating a general 'use when…' policy, hence not a 5.
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 pickerBRead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | The list of names or options on the reel (at least two) |
Output Schema
| Name | Required | Description |
|---|---|---|
| index | No | |
| winner | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 that every item has an equal chance and that it returns the chosen item, which is useful but not extensive. No contradiction with annotations; the randomness is compatible with a non-destructive, read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a source URL. It is front-loaded with the core action, then states fairness and the return value. No fluff; every sentence earns its place. The source URL is a minor extra but does not harm conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, annotations covering safety, and an output schema present, the description covers the essential behavior (random selection, equal chance, return value). It does not mention edge cases like exactly two items, but the schema enforces minItems, so nothing critical 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter (items), which is already documented as 'The list of names or options on the reel (at least two)'. The tool description adds no additional parameter-specific semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Spin a slot machine reel... pick one at random') and clearly identifies the resource (names/options) and the output (chosen item). It is clear, but it does not explicitly distinguish itself from closely related siblings like wheel_spinner or spin_the_bottle, which may also pick 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.
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. It does not mention conditions like 'use this for arbitrary lists of 2–100 items' or exclude cases like binary choices (coin_flip) or numeric ranges (dice_roller). With many similar random-picker siblings, this is 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_slug_generatorSlug generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The title or text to slugify |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| length | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses detailed behavioral traits beyond the annotations: lowercase conversion, accent stripping, collapsing spaces/punctuation/symbols to a single hyphen, and trimming hyphens from ends. This is exactly the kind of transformation detail an agent needs, and it is consistent with the read-only and idempotent hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with every clause carrying meaningful behavior. The source URL is a minor extra but does not detract from clarity or length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, low-complexity transformation tool, the description covers the transformation behavior completely. The output schema exists, so return-value details are not required, and annotations already establish the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the single 'text' parameter already described as 'The title or text to slugify'. The description reinforces that the input is title or text but adds little beyond the schema's own parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: converting any title or text into a clean URL slug. It goes beyond a generic phrase by enumerating the exact transformations (lowercase, accent stripping, collapsing punctuation/symbol runs to hyphens, trimming ends), which makes it easy to distinguish from other text utilities like hopi_url_encoder or hopi_case_converter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Turn any title or text into a clean URL slug' gives a clear use case and implies when this tool is appropriate. However, it does not explicitly state when not to use it or name alternatives such as URL encoding, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_small_text_generatorSmall text generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to convert | |
| style | No | Which style to apply (default superscript) | superscript |
Output Schema
| Name | Required | Description |
|---|---|---|
| style | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the read-only, idempotent, non-destructive profile. The description adds valuable behavior beyond that: it defines what each style produces and, importantly, states that unsupported characters are left unchanged, which prevents surprise about lossy conversion. This is meaningful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is a clear front-loaded purpose statement, and the following sentences efficiently enumerate styles and fallback behavior. The only marginal element is the source URL, which is harmless but not needed for tool selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with two parameters, one enum, no nested objects, strong annotations, and an output schema, the description covers the essential behavior (what it does, all style choices, and edge behavior for unsupported characters). 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.
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 real value by explaining the semantic difference between the enum values (tiny raised vs small caps vs wide monospaced), which the schema's generic 'Which style to apply' does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: converting text into decorative Unicode styles, then names the exact styles it offers (superscript, smallcaps, fullwidth). This separates it from nearby text-transform siblings like reverse_text or upside_down_text because the output is characterized as Unicode-styled rather than reversed or case-converted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is appropriate — when a user wants decorative Unicode output via one of the three named styles — but it never states exclusions or names alternatives among the many text-manipulation siblings. An agent could infer usage, but there is no explicit when-to-use vs when-not-to guidance.
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 copyARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | Optional: return only this group. Omit to return every group. |
Output Schema
| Name | Required | Description |
|---|---|---|
| group | No | |
| summary | No | |
| characters | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 the annotations: it returns characters "ready to copy," supports optional single-group filtering, and cites the source URL for provenance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with the main action front-loaded and no filler. It efficiently communicates the grouping, optional filter, output format, and source, with every sentence contributing useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with one optional enum parameter and an output schema, the description is complete. It tells the agent what the tool returns, how grouping and filtering work, and where the data comes from, so 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single parameter is 100%, with the schema already explaining that group is optional and that omitting it returns every group. The description adds only a lightweight restatement of the filtering behavior and a prose listing of categories, which is helpful but not a substantial addition over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "List special characters and symbols grouped by category," which clearly distinguishes this from the many unrelated hopi_* sibling tools. It also states the optional filter behavior and that the output is copy-ready, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational guidance: all categories are returned by default, and the group can be filtered to a single category. It does not name alternative tools or exclusion conditions, but among the large sibling set this tool is self-evidently the special-character resource, so no exclusion guidance is necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_speed_converterSpeed converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to | |
| from | Yes | Unit to convert from | |
| value | Yes | The speed value to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| value | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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, so the description carries a lighter burden. It adds useful context by defining Mach at exactly 340.29 m/s and citing a source URL, but it does not disclose rounding, precision, or response behavior; those are left to the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One focused sentence followed by a compact unit list and a source URL. The action and scope are front-loaded, and every element earns its place without duplicating the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic 3-parameter converter with enum-constrained units, safety annotations, and an output schema, the description covers what a caller needs: the domain, supported units, exact Mach basis, and provenance. Return-shape details are appropriately delegated to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema's generic 'Unit to convert from/to' by expanding the compact unit symbols (mph, kmh, ms, kn, mach) into full names and fixing the exact Mach constant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair ('Convert a speed from one unit to another') and explicitly enumerates all supported units. This is enough to distinguish it from the many sibling converter tools (length, weight, area, volume, etc.) without requiring an agent to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The domain is clearly stated: this is the tool for speed conversions among the listed units. It does not name sibling alternatives or provide when-not-to-use guidance, which keeps it from a 5, but the intended usage is unambiguous and there are no prerequisites.
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 bottleARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| players | Yes | The list of players in the circle (at least two) |
Output Schema
| Name | Required | Description |
|---|---|---|
| index | No | |
| chosen | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, non-destructive behavior. The description adds useful behavioral detail: random selection, equal chance for every player, and the return value. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences plus a source URL. Every sentence adds value: what it does, the fairness property, and the return value. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter random-selection tool with full schema coverage, an output schema, and safety annotations, the description is complete. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is already fully described in the schema with min/max constraints. The description reinforces that these are the players in the circle but doesn't add new format, duplicate-handling, or edge-case semantics. Baseline 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('pick one player at random') and the resource (players in the circle). It distinguishes itself from sibling random generators by focusing on single-player selection from a provided list, and the source URL adds credible context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is obvious: pass a list of players and get one randomly selected. It doesn't explicitly contrast alternatives like wheel_spinner or random_team_generator, but the context is clear enough that an agent would know when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_sql_formatterSQL formatterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL query to format |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | No | |
| formatted | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations, specifying exactly what changes ('uppercase the keywords, put each clause on its own line and indent conditions') and what is preserved ('quoted strings, identifiers, numbers and comments untouched'). It also states the invariant that only whitespace and keyword case change, which is highly informative and consistent with the read-only, idempotent, non-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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tight and front-loaded: it opens with the operation, lists concrete formatting rules, states preservation guarantees, and includes a source reference. Every sentence contributes useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required string parameter) and the presence of an output schema plus safety annotations, the description is complete. It answers what the tool does, what it changes, what it leaves untouched, and even cites the source implementation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single 'sql' parameter with 100% coverage, giving a baseline of 3. The description adds meaningful semantic context by explaining what the SQL input will undergo and what parts of the input are preserved, which helps the agent understand the expected effect beyond just 'the SQL query to format'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Format a SQL query') and enumerates what the transformation does: uppercase keywords, clause-per-line, indent conditions. The SQL resource clearly differentiates it from sibling formatters such as hopi_json_formatter 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the tool's purpose and input type unambiguous: it is for formatting SQL queries. It does not explicitly state when not to use it or name alternatives, but the context is clear enough that an agent would not confuse it with other sibling tools.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| rate | Yes | Quoted rate as a percentage (0 to 1000) | |
| years | Yes | Term in years (above 0, up to 100) | |
| rateType | No | Whether the rate is APR (needs compounding) or APY (default apr) | apr |
| principal | Yes | Amount staked | |
| compounding | No | Compounding frequency for APR (default daily) | daily |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| rewards | No | |
| summary | No | |
| rateType | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| compounding | No | |
| finalBalance | No | |
| rewardsString | No | |
| finalBalanceString | No | |
| effectiveApyPercent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and idempotent, so the bar for behavioral disclosure is lower. The description adds meaningful behavior beyond annotations: the APR/APY compounding distinction, the returned values, the GBP currency assumption, and a source link. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core purpose in the first sentence followed by key mode choices and outputs. The source URL is not essential but adds provenance without excessive bloat. It is appropriately sized for the tool's moderate complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations cover the safety profile, the description is largely complete: it covers calculation modes, returned values, currency assumption, and source. It does not spell out every input parameter, but the schema already documents those fully. Minor details like rounding or formatting are absent but are likely covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline is 3. The description adds semantic value by explaining what APR versus APY means for compounding and that daily/monthly compounding applies only to APR. This clarifies the rateType and compounding enums beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific purpose: turning a quoted staking rate into a final balance and rewards earned. It names the key outputs (final balance, rewards, effective APY) and the APR/APY distinction, which makes the tool's function easy to identify. It does not explicitly differentiate this from sibling calculators like hopi_compound_interest_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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context about when to choose APR with compounding versus APY without compounding, which guides parameter usage. It does not, however, explicitly state when to prefer this tool over sibling alternatives or mention any exclusions. The usage guidance is implied rather than comparative.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | Yes | 'ftb' first-time buyer, 'home' moving home, 'additional' second home or buy-to-let | |
| price | Yes | Property purchase price in GBP |
Output Schema
| Name | Required | Description |
|---|---|---|
| buyer | No | |
| price | No | |
| summary | No | |
| breakdown | No | |
| stampDuty | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| effectiveRatePercent | No |
TDQS
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: the relief thresholds for first-time buyers, the £40,000 floor for additional properties, and the fact that it returns tax due and effective rate. It doesn't detail edge cases like non-residential surcharges, but the core behavior is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the core function first, then buyer types, then return values, then jurisdictional exclusions, then source. Every sentence earns its place, and the structure guides the agent from purpose to usage to limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter calculator with a full schema, output schema, and safety annotations, the description covers all essential context: what it computes, who it applies to, what the buyer types mean, what it returns, and when not to use it. The source link adds credibility. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds value by explaining the buyer enum values in plain language and clarifying the price is in GBP. It doesn't add syntax details beyond the schema, but the schema is already rich enough; the description reinforces the meaning without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes SDLT on property purchases in England and Northern Ireland, names the three buyer types, and distinguishes it from Scotland/Wales variants. The verb 'work out' plus the specific tax name and jurisdiction make the purpose unambiguous and distinct from sibling calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when to use this tool (England/NI property purchases) and when not to (Scotland and Wales have their own rates). It also defines the buyer type semantics, giving the agent enough context to select the right input without ambiguity.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| numbers | Yes | A list of numbers separated by spaces, commas, semicolons or new lines |
Output Schema
| Name | Required | Description |
|---|---|---|
| mean | No | |
| count | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| sampleVariance | No | |
| populationVariance | No | |
| sampleStandardDeviation | No | |
| populationStandardDeviation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral detail beyond those: it computes both sample and population statistics, accepts multiple separator formats, and enforces a minimum of two values for sample calculations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: outputs first, input format second, constraint third. The source URL is slightly extraneous for an agent's invocation purposes, but it does not detract much from the overall efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter calculator with a full output schema present, the description is complete. It covers what the tool computes, how to provide the input, and the key constraint. No critical invocation information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single `numbers` parameter and separator formats, so baseline is 3. The description adds value by clarifying that sample calculations require at least two values and by listing the computed outputs, which helps the agent understand what the parameter is used for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('work out') and a precise resource (a list of numbers), and enumerates the exact outputs: sample and population standard deviation, variance, mean and count. This clearly distinguishes it from sibling calculators like the average calculator or variance-only tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete input instructions: numbers separated by spaces, commas, semicolons or new lines, and the constraint that sample figures need at least two values. It does not explicitly name alternatives or exclusion conditions, but the context of the tool is clear enough for an agent to know when to invoke it.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date of birth in YYYY-MM-DD format |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| sign | No | |
| range | No | |
| symbol | No | |
| element | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, and the description adds useful behavioral context: only the month and day matter, and the result includes sign, symbol, date range, and element. It does not discuss edge cases such as invalid dates or cusp handling, but for this simple calculator the added context is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: purpose, date-format caveat, and expected output/source. The most decision-relevant information is front-loaded, and the source line is optional but unobtrusive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only, idempotent calculator with an output schema and full schema coverage, this description is complete. It gives an agent enough information to decide, invoke, and understand the result without needing additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the date parameter with 100% coverage, and the description reinforces the YYYY-MM-DD format while adding the important semantic that only month and day matter. This goes slightly beyond the schema's own parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Find the western zodiac star sign for a date of birth.' It clearly distinguishes itself from general date or moon-phase calculators by naming the western zodiac and describing the returned data: sign, symbol, date range, and element.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear the tool is for a date-of-birth input and western zodiac signs, giving a strong usage context. It does not explicitly name when-not-to-use alternatives, but the purpose is specific enough that an agent is unlikely to confuse it with sibling calculators.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | Repayment plan | |
| salary | Yes | Annual salary in GBP | |
| addPostgraduate | No | Add a Postgraduate Loan on top of an undergraduate plan (ignored when plan is pg; default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | No | |
| salary | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| addPostgraduate | No | |
| postgraduatePart | No | |
| repaymentPerYear | No | |
| repaymentPerMonth | No | |
| undergraduatePart | No |
TDQS
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 genuinely useful computational behavior: exact 2026/27 thresholds, percentage rates per plan, optional Postgraduate Loan stacking, output granularity (yearly and monthly), currency, and a source URL. That is far beyond what the annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main purpose is front-loaded, each plan is stated in a compact, consistent clause, and the source is appended at the end. Every sentence adds information; there is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a calculator of this complexity, the description covers inputs, plan semantics, optional stacking, output format, currency, and source. With an output schema also present, an agent has everything needed to invoke it confidently and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents each parameter, the description decodes the plan enum values with concrete thresholds and rates, explains the optional addPostgraduate behavior, and clarifies that salary is in GBP. This materially helps an agent select the correct plan and avoid unit mistakes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Work out UK student loan repayments from an annual salary'. It immediately distinguishes this tool from generic loan calculators and other salary-related siblings, and it reinforces the purpose by enumerating the plan codes and thresholds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear trigger: anyone asking for UK student loan repayments based on annual salary. It does not explicitly name alternatives or say when not to use it, but the strong UK student-loan framing makes the intended use obvious even 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_take_home_pay_calculatorTake-home pay calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| salary | Yes | Annual gross salary in GBP |
Output Schema
| Name | Required | Description |
|---|---|---|
| salary | No | |
| summary | No | |
| incomeTax | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| takeHomePerWeek | No | |
| takeHomePerYear | No | |
| takeHomePerMonth | No | |
| nationalInsurance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given annotations already declare readOnlyHint=true and idempotentHint=true, the description adds valuable context: the exact tax code and bands, personal allowance taper above £100,000, NI inclusion, and the output breakdown (net pay per year/month/week, tax and NI deducted, GBP). It also cites a source, making assumptions transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and information-dense: it starts with the core action, then adds scope and return details, then units and source. Every sentence contributes value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter calculator with an output schema, the description fully covers what an agent needs to know: calculation basis, jurisdiction, tax year, what is included, output units, and source. No critical behavioral information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the salary parameter already described as 'Annual gross salary in GBP'. The description restates this but does not add extra meaning beyond the schema, such as formatting constraints or edge-case behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Work out UK take-home pay from an annual gross salary'. It also includes precise scope details (2026/27 tax year, England/Wales/NI, employee NI), distinguishing it from reverse calculators like hopi_net_to_gross and component calculators like hopi_national_insurance_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when the user needs UK take-home pay from an annual gross salary. It provides strong contextual signals like tax year and jurisdiction, though it does not explicitly name alternatives or 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_tarot_readerTarot card readerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| spread | Yes | Which spread to draw | |
| reversed | No | Allow reversed cards (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| spread | No | |
| summary | No | |
| positions | No | |
| majorCount | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| spreadName | No | |
| reversedCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and non-destructive behavior, and the description adds substantial behavioral detail: non-replacement card dealing, cryptographic randomness, and the exact return structure (position, card, orientation, keywords, plus Major Arcana and reversed counts). This goes well beyond the annotations and prepares the agent for the random, non-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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences contain all essential information: operation and method, spread options with counts, return composition, usage disclaimer, and source URL. It is front-loaded and scannable with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, only two simple parameters, and no nested objects, the description is fully adequate. It covers the deck, randomness guarantees, every spread option, return fields, and the tool's purpose and source. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters fully, including the spread enum and the reversed boolean default. The description adds value by mapping each spread name to its card count (e.g., 'daily (1 card)'), which helps an agent choose the right enum value without opening the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action ('Draw a tarot spread'), the exact resource ('all 78 Rider-Waite-Smith cards'), the dealing mechanism ('without replacement using cryptographic randomness'), and enumerates the seven supported spreads. This clearly separates it from the many sibling calculators and random generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong usage context: it lists every spread with its card count and explicitly frames the tool as 'For reflection and fun, not prediction.' However, it does not explicitly contrast it with related sibling tools such as hopi_fortune_cookie or hopi_magic_8_ball, so there is no explicit 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_tdee_calculatorTDEE & calorie calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | Age in years | |
| sex | Yes | Biological sex | |
| units | Yes | 'metric' (cm, kg) or 'imperial' (inches, pounds) | |
| activity | No | Activity level, default 'moderate' | moderate |
| heightCm | No | Height in centimetres (metric) | |
| weightKg | No | Weight in kilograms (metric) | |
| heightInches | No | Total height in inches (imperial) | |
| weightPounds | No | Weight in pounds (imperial) |
Output Schema
| Name | Required | Description |
|---|---|---|
| age | No | |
| bmr | No | |
| sex | No | |
| gain | No | |
| loss | No | |
| tdee | No | |
| summary | No | |
| activity | No | |
| mildLoss | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| activityFactor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent, and the description adds valuable behavioral context: the exact BMR/TDEE formula, unit-system requirements, activity multipliers, and the additional calorie goals returned. This goes well beyond what the annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized: purpose and formula first, then units and activity factors, then additional outputs, then source. Every sentence contributes useful information, though the formula detail makes it slightly longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and rich input schema, the description covers everything an agent needs: what the tool computes, which parameters to use per unit system, how activity is factored, and what additional calorie goals are returned. No critical calling context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all parameters with 100% coverage, so the baseline is 3. The description adds further meaning by connecting units to specific parameters, defining the activity enum values with numeric factors, and explaining how sex and age enter the calculation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Estimate daily calories (TDEE) and BMR using the Mifflin-St Jeor equation.' It also clarifies the exact calculation method and what outputs the tool produces, making it clearly distinguishable from the many other hopi calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states what the tool is for and gives concrete usage instructions for both metric and imperial units, including the activity levels and their multipliers. It does not name alternatives or exclusions, but the intended context is evident from the detailed purpose statement.
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 generatorARead-onlyIdempotentInspect
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 locally; nothing is uploaded and no bank is contacted. Source: https://hopi.co.uk/test-card-number-generator/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Generate test numbers, or validate a supplied number (default generate) | generate |
| brand | No | Card brand to generate (default visa) | visa |
| count | No | How many numbers to generate, 1 to 50 (default 10) | |
| number | No | For validate mode: the card number to check (spaces and dashes are ignored) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| note | No | |
| brand | No | |
| count | No | |
| numbers | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint false), the description adds meaningful behavioral context: the generated numbers are not real accounts, cannot be charged, and the operation runs locally with no uploads or bank contact. This gives an agent confidence about side effects and privacy without contradicting any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary purpose and then explains key safety constraints. The only mildly extraneous element is the source URL, but it is short and does not interfere. Overall, every sentence contributes useful guidance for selecting and invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, full schema coverage, output schema presence, and strong annotations, the description is complete. It explains the two modes, the nature of the generated numbers, supported brands, privacy behavior, and validation semantics, leaving no significant gap for an agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all four parameters at 100%, so the baseline is 3. The description adds value by explaining what each mode returns: generate mode returns numbers for a brand, while validate mode returns Luhn validity and detected brand. It also expands the enum brand names into human-recognizable forms (Visa, Mastercard, American Express, Discover).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Generate Luhn-valid TEST card numbers for QA and development, or validate a card number.' It clearly distinguishes the two operational modes and names the supported brands, so an agent can tell this tool apart from unrelated siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: 'for QA and development', and it explicitly covers both generate and validate modes. It does not name excluded scenarios or alternative tools, but since no obvious sibling provides the same function, the intended 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_text_repeaterText repeaterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to repeat | |
| count | Yes | How many times to repeat it (1 to 10000) | |
| numbering | No | Prefix each repeat with a number, e.g. '1. ' (default false) | |
| separator | No | How to join the repeats (default none) | none |
| customSeparator | No | The separator string to use when separator is 'custom' |
Output Schema
| Name | Required | Description |
|---|---|---|
| lines | No | |
| capped | No | |
| result | No | |
| summary | No | |
| characters | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only, idempotent, and non-destructive behavior. The description adds concrete limits: a 10000-repeat cap, a 100000-character output cap, and the returned character/line counts. It does not state exact behavior when caps are exceeded, but the safe operation profile makes this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the core function, then state limits and return values. There is no filler, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and fully documented parameters, the description covers the operation, output caps, and returned counts well. The conditional dependency between separator='custom' and customSeparator is not explained, but this is a small gap in an otherwise complete definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents text, count, numbering, separator, and customSeparator with defaults and enums. The description only adds a high-level mention of optional separator and numbering, without meaningful extra parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Repeat a piece of text a chosen number of times', with optional separator and line numbering. This clearly differentiates it from siblings like text_splitter or reverse_text without restating the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives, and no mention of close siblings such as text_splitter, remove_duplicate_lines, or reverse_text. An agent must infer appropriate use from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_text_splitterText splitterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'length' splits by character size (default), 'delimiter' splits at a delimiter | length |
| size | No | Maximum characters per block for length mode (at least 10, default 280) | |
| text | Yes | The text to split | |
| numbered | No | Add ' n/total' numbering to each block in length mode (default false) | |
| delimiter | No | The delimiter for delimiter mode; \n and \t are interpreted as newline and tab |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| count | No | |
| blocks | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds valuable behavioral details: length mode breaks at spaces where possible, optional numbering with format '1/n', delimiter mode splits at every occurrence, and \n/\t interpretations. It also states the return shape ('Returns the list of blocks'). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, tightly packed: the main purpose, mode-specific behavior, and return type. The source link is a minor addition that doesn't bloat the description. Every sentence earns its place; no redundancy or vague filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read-only text utility, the description covers everything needed to invoke correctly: both modes, parameter interplay, numbering behavior, delimiter escaping, and output format. With annotations covering safety and a complete schema covering parameters, no critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description enriches meaning by explaining how mode affects behavior, the exact numbering scheme ('1/n'), and the escape conventions for delimiters. It doesn't merely repeat the schema; it adds operational context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Split a long block of text into smaller blocks.' It then distinguishes two concrete modes ('length' and 'delimiter'), which differentiates it from sibling text tools like character_counter or case_converter. The purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use each mode: length mode for 'chunks up to a maximum character size' and delimiter mode for splitting at a specified delimiterщений. It even provides escape examples (\n, \t). However, it does not explicitly state when not to use the tool or mention alternative sibling tools, though none directly compete for text splitting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_time_calculatorTime calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hours1 | No | Hours of the first duration (default 0) | |
| hours2 | No | Hours of the second duration (default 0) | |
| minutes1 | No | Minutes of the first duration (default 0) | |
| minutes2 | No | Minutes of the second duration (default 0) | |
| operation | No | Add or subtract the second duration from the first (default 'add') | add |
Output Schema
| Name | Required | Description |
|---|---|---|
| clock | No | |
| summary | No | |
| operation | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| decimalHours | No | |
| totalMinutes | No |
TDQS
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 valuable behavioral details: results can be negative when subtracting Fen, and the output includes three formats. These go 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with zero unnecessary words. The core operation is front-loaded, followed by output details and a source reference. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and simple parameters, the description covers what the tool does, what it returns, and how results behave (including negative cases). No critical information for invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented with defaults and meaning. The description reinforces that hours and minutes correspond to two durations, but it does not add significant new semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Add or subtract') and resource ('two durations, each given as hours and minutes'), clearly distinguishing it from other calculator tools. It also specifies the output formats, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like hopi_hours_calculator or hopi_minutes_to_hours. The description only explains what the tool does, leaving the agent to infer appropriate usage context.
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 converterARead-onlyIdempotentInspect
Convert a wall-clock date and time from one time zone to another, using the browser'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/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | The date in the source zone, YYYY-MM-DD format | |
| time | Yes | The time in the source zone, 24-hour HH:MM format | |
| toZone | Yes | Target IANA time zone, e.g. America/New_York | |
| fromZone | Yes | Source IANA time zone, e.g. Europe/London |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | |
| toZone | No | |
| dayNote | No | |
| summary | No | |
| fromZone | No | |
| onDstGap | No | |
| toOffset | No | |
| fromOffset | No | |
| resultLong | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| dayDifference | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations: it explains that DST is handled via the browser's IANA data, clarifies the wall-clock semantics, and discloses the return values (converted time, day difference, UTC offsets). Annotations already indicate read-only, idempotent, and non-destructive, so the description enriches the behavioral picture without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with purpose, then input formats, then return values. It has zero fluff; every sentence contributes essential information, making it highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only conversion tool with an output schema, the description covers input formats, zone selection, DST handling, and return content. It is sufficient for an agent to invoke correctly without missing critical details, and the existence of an output schema means return values need not be fully enumerated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented (date format, time format, zone examples). The description restates these formats and adds the concept of wall-clock, but does not add substantial new meaning beyond what the schema provides. The baseline of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts a wall-clock date and time from one time zone to another, using specific verbs and a resource. It distinguishes itself from sibling time-related tools (e.g., hopi_time_calculator, hopi_military_time_converter) by explicitly focusing on time zones, and provides concrete IANA zone examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it specifies the input formats (YYYY-MM-DD, HH:MM) and the nature of the conversion (wall-clock, DST handled). However, it does not explicitly mention when not to use it or name alternative tools, so it lacks explicit exclusions but still offers enough context for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_tip_calculatorTip calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| bill | Yes | The bill amount before tip | |
| split | No | Number of people to split between (default 1) | |
| tipPercent | No | Tip as a percentage (default 12.5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tip | No | |
| bill | No | |
| split | No | |
| total | No | |
| summary | No | |
| perPerson | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| tipPercent | No |
TDQS
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 behavioral value beyond annotations by stating what the tool returns—tip amount, total, and amount per person—and by noting the optional split behavior. This is adequate for a pure calculator, though it does not mention rounding or currency handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core action in the first clause, and the return values are listed clearly. The trailing source URL is minor extra information but does not substantially harm conciseness; a fully optimized version could drop it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with full schema coverage, read-only annotations, and an output schema, the description is complete. It explains the action, optional splitting, and return values, while the schema provides parameter defaults and constraints. 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.
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 and the schema already documents bill, split, and tipPercent. The description only reinforces the split concept with 'optionally split the total between people' and does not add meaningful parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Work out a tip on a bill' and lists the returned values. It also clarifies the optional split behavior, making the tool's purpose obvious. However, it does not explicitly distinguish this from the closely related sibling hopi_bill_splitter, which could also handle splitting a total between people.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: calculate a tip and optionally split the resulting total. It does not provide explicit when-to-use guidance, exclusions, or alternatives, and the presence of hopi_bill_splitter makes the boundary between the two tools ambiguous without additional context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_totp_generatorTOTP generatorARead-onlyIdempotentInspect
Generate a time-based one-time password (TOTP) from a base32 secret, the way an authenticator app does for two-factor authentication. Follows RFC 6238: the secret is decoded from base32, the counter is Unix time divided by the period, an HMAC is computed over the 8-byte counter, and RFC 4226 dynamic truncation produces the code. All processing is local via the browser WebCrypto API. For testing and learning; do not use a secret that protects a real account. Source: https://hopi.co.uk/totp-generator/
| Name | Required | Description | Default |
|---|---|---|---|
| time | No | Unix time in seconds to use (default now); pass a fixed value for deterministic testing | |
| digits | No | Number of digits in the code (default 6) | |
| period | No | Time step in seconds (default 30) | |
| secret | Yes | The shared secret in base32 (letters A to Z and digits 2 to 7) | |
| algorithm | No | HMAC hash algorithm (default SHA-1) | SHA-1 |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| summary | No | |
| otpauthUri | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| secondsRemaining | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context above that: 'All processing is local via the browser WebCrypto API', details the RFC 6238 algorithm flow, and warns against using real account secrets. This goes beyond what annotations alone provide, though it does not exhaustively address all edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: it opens with the core purpose, then explains the algorithm, privacy behavior, and safety warning in compact sentences. There is no filler; even the source URL is a brief, useful provenance note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, full schema coverage, an output schema, and annotations, the description covers the essential context: what it does, how it works, where processing happens, and when it is safe to use. An agent has enough information to invoke it correctly and avoid misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has clear descriptions, defaults, and enum constraints. The description mentions the base32 secret and period in the algorithm explanation, but it does not add significant per-parameter meaning beyond what the input schema already provides. Baseline 3 is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Generate a time-based one-time password (TOTP) from a base32 secret'. It also distinguishes itself from sibling crypto/hash tools by explaining it works 'the way an authenticator app does for two-factor authentication'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'For testing and learning' and an explicit when-not-to-use warning: 'do not use a secret that protects a real account'. It does not name an alternative sibling for other HMAC/base32-related tasks, but the context is sufficient for the intended educational use case.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | Side a, the opposite (greater than 0) | |
| b | No | Side b, the adjacent (greater than 0) | |
| c | No | Side c, the hypotenuse (greater than 0, must be the longest side) | |
| angleA | No | Angle A in degrees, strictly between 0 and 90 |
Output Schema
| Name | Required | Description |
|---|---|---|
| a | No | |
| b | No | |
| c | No | |
| area | No | |
| angleA | No | |
| angleB | No | |
| method | No | |
| summary | No | |
| perimeter | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which covers the safety profile. The description adds what the tool returns ('all three sides, both non-right angles, the area and the perimeter') and clarifies the angle semantics (third angle is the 90-degree right angle). No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, all substantive. The core operation is front-loaded ('Solve a right-angle triangle from any two given values'), followed by parameter definitions and return details. The source link is the only non-essential element but is harmless. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 fully documented parameters, an output schema (present but not provided), and annotations covering side effects, the description supplies the critical input rule (any two values, at least one side) and the return set. An agent has all necessary information to call the tool correctly. The only omission is explicit error behavior for invalid combinations, which is not required for a read-only calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (each parameter has a description), which sets a baseline of 3. The description adds value by defining a/b/c as opposite/adjacent/hypotenuse and stating the combinatorial constraint that 'at least one of which must be a side'—a rule not visible in the schema's required array (which is empty). This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Solve a right-angle triangle from any two given values, at least one of which must be a side.' It clearly names the sides (a, b, c) and angle (angleA), and distinguishes the tool from all sibling hopi_ calculators by focusing on a right-angle triangle. This is unambiguous and high-signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the exact input requirement ('any two given values, at least one must be a side') and the angle range (0-90), giving clear context for when to use it. No sibling tool handles triangles, so there is no alternative to differentiate, but the description does not explicitly say 'do not use for non-right triangles.' The title transmits that constraint, so this 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_ucas_points_calculatorUCAS points calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | Number of A grades (0 to 20) | |
| b | No | Number of B grades (0 to 20) | |
| c | No | Number of C grades (0 to 20) | |
| d | No | Number of D grades (0 to 20) | |
| e | No | Number of E grades (0 to 20) | |
| aStar | No | Number of A* grades (0 to 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| totalPoints | No | |
| gradesCounted | No |
TDQS
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 useful behavioral context by specifying the exact tariff points per grade, the expected return (total points and grade count), and citing a source. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences with no filler: what the tool does, what input to provide, and what output to expect. It is front-loaded with the main action and keeps the source URL at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a pure calculation tool with safety annotations and an output schema, the description covers everything needed: the tariff table, the input convention, the return value, and the source. There are no hidden side effects or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% since each parameter is described as a count of a grade, so the baseline is 3. The description adds meaning beyond the schema by giving the tariff point values and explaining that the counts are summed, which is essential for calling the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add up'), names the exact resource ('UCAS tariff points from A-level grades'), and includes the current tariff values, so an agent can distinguish it from the other hopi_calculator siblings. It goes well beyond 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the intended use case (calculating UCAS tariff points from A-level grades) and requests the exact input shape (number of grades at each level). It does not explicitly name exclusions or alternatives, but no sibling tool covers the same domain, 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_unicode_inspectorUnicode inspectorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to inspect |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | No | |
| utf8Bytes | No | |
| characters | No | |
| codePoints | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| utf16Length | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds valuable behavioral details: the code point iteration counts astral characters as one, and the character list is capped at 2000 entries. This goes beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that leads with the core purpose and then lists outputs. It is not overly verbose, though the list of per-character fields is long. It is well-structured and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with one input and an output schema, the description is remarkably complete. It explains what is returned, including the counting nuance for emoji, and notes the list cap. An agent can call it correctly with no missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the only parameter (text) with a simple description, and coverage is 100%. The description does not add extra parameter constraints or formatting instructions. It mentions the 2000-entry cap, but that is an output limit, not a parameter semantic. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool inspects text as Unicode and enumerates the specific metrics returned (code points, UTF-16 length, UTF-8 bytes, per-character details). This distinguishes it from sibling tools like character_counter or word_counter, which focus on simpler counts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool versus alternatives. It implies its use for detailed Unicode analysis, but it never states exclusions or suggests other tools for simpler needs. This is a gap in routing guidance.
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 comparisonARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | The items to compare (at least two) |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | |
| summary | No | |
| bestItem | No | |
| mixedUnits | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| bestUnitPrice | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive behavior. The description adds the tool's calculation behavior: quantities are normalized to per-kg, per-litre, or per-each, and it returns every item's unit price plus the cheapest one. This is useful behavioral context without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and each subsequent sentence adds required detail: item fields, normalization, output, and source. There is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the annotations cover safety, the description is nearly complete: it states inputs, units, normalization, and result. It does not explicitly warn against comparing items of different measure categories (e.g. weight vs volume), though the normalization rules imply it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the items array and its fields at 100% coverage. The description goes beyond the schema by explaining how the units are interpreted in the comparison ('Weights are compared per kg, volumes per litre, and counts each'), giving the agent semantic context for the quantity and unit parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and object: 'Compare the unit price of two or more items to find the best value.' It further distinguishes itself by listing accepted units and the normalization rule (weights per kg, volumes per litre, counts each), so the tool is immediately separable from 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the intended use (comparing unit prices of at least two items) and the domain constraints (price in GBP, quantity, allowed units, minimum two items). It does not explicitly name alternatives or when-not-to-use conditions, but the context is clear enough for a single-purpose calculator.
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 converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | A date as YYYY-MM-DD. Provide this to convert a date to a timestamp. | |
| time | No | Optional time as HH:MM:SS to accompany 'date' (default 00:00:00), in local time. | |
| timestamp | No | A Unix timestamp in seconds or milliseconds (may be negative). Provide this to convert a timestamp to a date. |
Output Schema
| Name | Required | Description |
|---|---|---|
| iso | No | |
| utc | No | |
| unit | No | |
| local | No | |
| summary | No | |
| relative | No | |
| direction | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 valuable behavioral details beyond annotations, including automatic detection of seconds vs milliseconds, local-time interpretation of dates, and that output includes both UTC and local dates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loads the core purpose, and explains both usage branches efficiently. The source link is minor but does not detract from the clarity or structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with a fully documented schema and an output schema, the description covers both conversion modes, input forms, timezone interpretation, and output types. No critical operational details are 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents parameter formats. The description adds meaning by explaining auto-detection of timestamp units, the bidirectional nature, and the output including both seconds and milliseconds, which goes beyond the raw schema property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Convert between Unix epoch timestamps and readable dates.' It clearly describes both conversion directions and distinguishes this tool from sibling date/time tools by focusing on Unix epoch timestamps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains the two usage modes: pass a timestamp to get UTC and local dates, or pass a date (with optional local time) to get timestamps. It provides clear context for when to use it, though it does not explicitly mention alternatives like time_zone_converter or date_calculator.
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 textARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to flip upside down |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent, non-destructive), it reveals the core algorithmic behavior: character substitution, positional reversal, and retention of unmapped characters. This gives an agent an accurate mental model of the output transformation. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two substantive sentences plus a source line; the main action and mechanism are front-loaded. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-string-input, read-only text utility with an output schema and non-destructive annotations, the description covers the operation, the edge-case behavior, and the transformation details. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is already fully described in the schema ('The text to flip upside down'), and the description does not add parameter-specific constraints or formatting details. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-object pair ('Flip text upside down') and clarifies the transformation mechanism (Unicode look-alike characters plus reversal), which distinguishes it from plain reverse tools like hopi_reverse_text. It also states fallback handling for unmappable characters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The transformation use case is clear from the description, but it never explicitly says when to prefer this over hopi_reverse_text or other text tools. There is no when-not guidance or mention of alternatives.
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 & decodeARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'component' for a single value, 'uri' for a whole URL (default 'component') | component |
| text | Yes | The text or URL to encode or decode | |
| action | No | Whether to encode or decode (default 'encode') | encode |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| action | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 the key behavioral nuance that component mode percent-encodes every reserved character while whole-URL mode preserves structural characters like / ? &, which is genuine context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is front-loaded in the first sentence, and the mode distinction follows immediately in the second. The source URL at the end is slightly extraneous for invocation purposes, but the overall description remains compact and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complete input schema, an output schema, and annotations covering safety and idempotence, the description provides the remaining behavioral context needed to call the tool correctly. No essential information such as input constraints, side effects, or return value appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description earns an extra point by explaining the practical consequence of the mode enum: which characters are affected, which the schema's short parameter descriptions do not fully convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Percent-encode or decode text for URLs.' It then distinguishes the two operational modes (component vs whole-URL), making the tool's purpose and scope unambiguous even among many 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly prescribes when each mode is appropriate: component mode for a single query value, whole-URL mode for a complete address. It does not explicitly rule out alternative tools such as hopi_html_escape or hopi_base64, so it stops short of a full 5, but the in-tool 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_url_parserURL parserARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to parse |
Output Schema
| Name | Required | Description |
|---|---|---|
| host | No | |
| path | No | |
| port | No | |
| origin | No | |
| params | No | |
| summary | No | |
| fragment | No | |
| protocol | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| portIsDefault | No | |
| schemeAssumed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral detail beyond the readOnly/idempotent annotations: it discloses the default scheme assumption for bare domains and specifies that query parameters are returned decoded. Annotations already establish the safe, idempotent nature, so the description contributes meaningful extra context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the core capability front-loaded and the fallback behavior following immediately. The source attribution is unobtrusive and does not dilute the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-argument read-only parser with an output schema, the description covers the essential behavior and the notable default-scheme edge case. Nothing critical is missing for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds semantic value by explaining how the url parameter behaves when no scheme is present and by listing what the parser extracts, which gives the agent a richer understanding of what input is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Parse a URL into its parts', then enumerates the exact output components (protocol, host, port, path, fragment, origin, query parameters). This clearly differentiates it from sibling tools like hopi_url_encoder and hopi_utm_link_generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates the clear use case: extracting URL components, including decoded query parameters. It does not explicitly name alternatives or exclusion conditions, but the enumerated behavior leaves little doubt about when to invoke this tool.
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 parserARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| ua | Yes | The user agent string to parse |
Output Schema
| Name | Required | Description |
|---|---|---|
| os | No | |
| bot | No | |
| device | No | |
| engine | No | |
| browser | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable behavioral context beyond that: the ordered pattern table (Edge before Chrome, Chrome before Safari) and the spoofing/best-effort caveat. It doesn't mention malformed-input behavior, but this is not a major gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. It front-loads the primary function and outputs, then adds relevant behavior and a source link. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter), the presence of an output schema, and annotations that fully cover safety/idempotency, the description is complete. It explains what is extracted, the parsing strategy, the reliability caveat, and the source—nothing an agent needs to select and invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the single 'ua' parameter with 100% coverage. The description restates the concept of a user agent string but doesn't add new parameter-level details such as format examples or normalization rules, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Parse'), names the exact resource ('user agent string'), and enumerates the output parts: browser and version, rendering engine, operating system, device type, and bot/crawler detection. This clearly distinguishes it from other parsers in the sibling list, such as url_parser or cron_expression_parser.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context about the tool's applicability and reliability, noting that user agent strings can be spoofed and results are best-effort. It doesn't explicitly name alternatives, but no sibling tool appears to provide the same functionality, so 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_username_generatorUsername generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many usernames to generate, 1 to 50 (default 6) | |
| addNumbers | No | Append a two-digit number to each name (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | No | |
| usernames | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral detail beyond the read-only and idempotent annotations: it explains the random adjective-noun construction, the uniqueness guarantee, and the optional numeric suffix. No side effects, destructive behavior, or external interactions are suggested, and no contradiction with annotations is apparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the core algorithm and output behavior front-loaded. The source link is unobtrusive, and there is no repeated or redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter generator with a provided output schema and full parameter documentation, this description is complete. It tells the agent what the tool produces, how it produces it, and that results are unique.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents both count and addNumbers, including defaults, ranges, and descriptions, so the description does not need to repeat parameter details. It adds a little flavor by describing the two-digit-number option, but it does not significantly deepen the schema-provided semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Invent') and names the exact resource and method: usernames built from a random adjective plus a random noun, with an optional two-digit suffix. It also states the output is a list of unique usernames, which clearly differentiates it from generic random word or name generators 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys the use case: generating memorable username ideas. It does not explicitly name alternatives or state when not to use it, so it does not reach the top tier, but the purpose is specific enough that an agent can infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_utm_link_generatorUTM link generatorARead-onlyIdempotentInspect
Add UTM campaign parameters (utm_source, utm_medium, utm_campaign, utm_term, utm_content) to a URL without breaking existing query parameters. Warns on mixed case and notes any missing core parameters. Only http and https URLs are accepted. Source: https://hopi.co.uk/utm-link-generator/
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The base URL to tag (https:// assumed if no scheme given) | |
| utm_term | No | Paid keyword term (optional) | |
| utm_medium | No | The marketing medium, e.g. email | |
| utm_source | No | Where the traffic comes from, e.g. newsletter | |
| utm_content | No | Content variant, e.g. button vs text link (optional) | |
| utm_campaign | No | The campaign name |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| notes | No | |
| summary | No | |
| warning | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing concrete behavior: it preserves existing query parameters, warns on mixed case, notes missing core parameters, and restricts accepted schemes to http and https. These are useful operational details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and information-dense: three sentences cover the action, the safety behavior, edge-case warnings, and URL restrictions. There is no filler; even the source attribution is a compact, useful reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward URL tagging tool with a rich schema and output schema, the description covers the essential behavior, constraints, and edge cases. An agent has enough context to invoke it correctly without additional undocumented details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents each parameter. The description names all five UTM parameters and adds high-level context about how they are appended to the URL, but it does not meaningfully expand on individual parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: adding UTM campaign parameters to a URL while preserving existing query parameters. This differentiates it from generic URL tools among the siblings, such as url_encoder and url_parser, and names the exact UTM parameters involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when the tool is appropriate: tagging URLs with UTM parameters, and it explicitly states the http/https URL requirement. It doesn't name alternative sibling tools or say when not to use it, but the specialized purpose is evident 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_uuid_generatorUUID generatorARead-onlyIdempotentInspect
Generate 1 to 100 random version 4 UUIDs using the browser's cryptographically secure random source (crypto.randomUUID, falling back to crypto.getRandomValues). Never uses Math.random. Source: https://hopi.co.uk/uuid-generator/
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many UUIDs to generate, 1 to 100 (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| uuids | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, and non-destructive. The description adds valuable behavioral detail: it uses the browser's cryptographically secure random source, falls back to crypto.getRandomValues, and never uses Math.random. This goes beyond the annotations and informs security-sensitive decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tight sentence that front-loads the action and count, then adds security-relevant implementation details and a source reference. No filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter utility with full schema coverage, annotations, and an output schema, the description provides everything needed to invoke it correctly: count range, UUID version, randomness source, and guarantees about not using Math.random.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is complete (100%) with count min, max, default, and description. The tool description restates the 1-to-100 range but adds no new parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Generate'), a precise resource ('random version 4 UUIDs'), and a quantity range (1 to 100). It is easily distinguishable from sibling random generators like random_number_generator or random_letter_generator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is specific enough that an agent can infer when to use this tool: when UUIDs, particularly version 4, are needed. It does not explicitly name alternatives or exclusions, but the strong context makes misrouting unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_vat_calculatorVAT calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'add' VAT to a net amount, or 'remove' VAT from a gross amount | |
| rate | No | VAT rate as a percentage (default 20) | |
| amount | Yes | The money amount |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | |
| vat | No | |
| mode | No | |
| rate | No | |
| gross | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 stating that it returns net, VAT, and gross figures, and by clarifying the default UK rate, going beyond the annotation-only information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences covering purpose, modes, default rate, output fields, and a source link. Every sentence earns its place and the core information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complete input schema, a rich annotation set, and an output schema, the description covers the core behavioral contract adequately. It leaves rounding and precision details to the output schema, which is reasonable for a simple calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters, setting a baseline of 3. The description adds meaning by explaining that `amount` is interpreted as net when mode is `add` and gross when mode is `remove`, and by reinforcing the default rate context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool adds or removes UK VAT on an amount, with a default rate of 20%. It is easy to distinguish from most sibling calculators, though it does not explicitly contrast it with near-neighbor tools like 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: use this tool when UK VAT needs to be added to a net amount or removed from a gross amount, with a standard 20% default. It does not explicitly name alternatives or state when not to use it, so it falls short of a top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_vigenere_cipherVigenere cipherARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The keyword (only its A to Z letters are used) | |
| mode | No | 'encode' to apply the cipher, 'decode' to reverse it (default encode) | encode |
| text | Yes | The text to transform |
Output Schema
| Name | Required | Description |
|---|---|---|
| output | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by explaining exactly which characters are transformed, how the keyword repeats, that non-letters don't advance the keyword, that case is preserved, and that decoding reverses the shift. This gives the agent a precise behavioral model without relying on the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the main operation, and each sentence adds meaningful detail about the algorithm. The source link is a minor but acceptable addition, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations, a fully described schema, and an output schema present, the description fully covers what an agent needs to call this tool correctly. It explains edge-case behavior around case, non-letter characters, and keyword handling, leaving no material gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all parameters at 100% coverage, so the baseline is 3. The description adds value by explaining how the key is applied (A=0 to Z=25, keyword repeating), how mode behaves, and how non-letter characters are handled, which clarifies both key and text semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Encode or decode text') and the specific resource ('classic Vigenere cipher using a keyword'). The algorithmic detail distinguishes it from sibling tools like hopi_caesar_cipher and other general encoders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use this tool when you need to encode or decode text with a Vigenere cipher rather than a fixed Caesar shift or other transformation. However, it does not explicitly name alternatives or provide exclusion criteria, so the agent must infer when to choose this tool over closely related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_volume_converterVolume converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to | |
| from | Yes | Unit to convert from | |
| value | Yes | The volume value to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| value | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 list of accepted units and a source URL, but does not disclose any further behavioral characteristics such as rounding, precision, or error handling. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence states the core function and unit list, and a second provides attribution. No filler or redundant repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple unit conversion tool with three fully documented parameters, a complete enum list, and an output schema, the description is sufficient. The annotations cover side-effect expectations, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, but the description adds value by expanding the terse enum codes into full unit names (e.g., ukpt = UK pints, usfloz = US fluid ounces). This helps an agent disambiguate units without needing external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Convert a volume') and the resource (volume units), and the unit list makes the scope concrete. However, it does not explicitly differentiate from the specialized sibling hopi_litres_to_pints, which could also handle some of the same conversions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for volume conversions but gives no guidance on when to choose this tool versus alternatives like hopi_litres_to_pints, hopi_weight_converter, or hopi_length_converter. No exclusions or selection criteria are provided.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| hot | No | Add 500 ml for hot conditions. Default false | |
| units | Yes | 'metric' (kg) or 'imperial' (stone and pounds) | |
| activity | No | Activity level, default 'sedentary' | sedentary |
| weightKg | No | Weight in kilograms (metric) | |
| weightStone | No | Whole stone part of weight (imperial) | |
| weightPounds | No | Pounds part of weight (imperial) |
Output Schema
| Name | Required | Description |
|---|---|---|
| lowMl | No | |
| units | No | |
| highMl | No | |
| summary | No | |
| lowLitres | No | |
| highLitres | No | |
| lowGlasses | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| highGlasses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is read-only and idempotent. The description adds meaningful behavioral context by revealing the exact formula, activity increments, hot-condition adjustment, and the output format as a low-to-high range in litres, millilitres, and glasses. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is packed into three dense but efficient sentences with no filler. The core purpose and formula are front-loaded, parameter usage is covered, and the source URL is cleanly appended at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a calculator with a fully described input schema and an output schema present, the description is complete: it covers purpose, formula, all parameter categories, unit selection, output units, and source. An agent has everything needed to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds value beyond the schema by explaining the exact ml-per-kg formula, the activity-to-ml mapping, and the metric/imperial field pairing, which helps an agent construct correct inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Estimate a rough daily fluid target from body weight.' It clearly distinguishes this from sibling calculators by naming the exact calculation and output, so an agent cannot confuse it with other hopi tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly defines when to use the tool by specifying formula inputs, unit options, activity levels, and hot-weather adjustment. It does not explicitly name alternative tools or when-not-to-use conditions, but the unique purpose and full input guidance 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_week_numberWhat week number is it?ARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Optional date in YYYY-MM-DD format (defaults to today) |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| week | No | |
| isoYear | No | |
| summary | No | |
| weekEnd | No | |
| weekStart | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 meaningful context beyond that: it explains the ISO week definition (Monday–Sunday, week 1 contains the first Thursday), the default date behavior, and the exact output fields. This informs the agent about the tool's semantics and return values without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences with zero fluff. The primary action is front-loaded, followed by essential format/default details, the ISO rule, return values, and a source link. Every sentence adds value and the structure is logical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and an output schema provided, the description covers all necessary usage details: input format, default, the ISO week convention, and output elements. It does not address edge cases like invalid dates or timezone handling, but these are not critical for this simple utility and the provided information is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% – the only parameter 'date' is fully described in the schema with format and default. The description repeats this information but adds no additional parameter-specific guidance beyond clarifying how the date is interpreted under ISO rules. This meets the baseline for full schema coverage, but does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Find the ISO 8601 week number for a date.' It clearly distinguishes this tool from date-related siblings by focusing on the ISO week calculation and explicitly lists the returned data (week number, ISO year, Monday and Sunday). This is unambiguous and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the input format and default behavior ('Defaults to today'), which gives clear context for use. It does not explicitly name alternative tools, but the narrow scope (ISO week number) makes the use case inherently obvious. No exclusions are mentioned, but the purpose is specific enough that an agent would not confuse it with other date tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hopi_weight_converterWeight converterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to | |
| from | Yes | Unit to convert from | |
| value | Yes | The weight value to convert |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| value | No | |
| result | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 safe, non-mutating nature is clear. The description adds no behavioral context beyond 'convert' and lists units; with annotations carrying the safety profile, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and each sentence earns its place: the conversion purpose, the unit list, and the source URL. There is no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool with full parameter documentation, clear annotations, and an output schema, the description is complete. It includes the supported units and source, and 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes all three parameters with 100% coverage, so the baseline is 3. The description adds value by expanding the terse enum symbols into full unit names (g → grams, st → stone), which helps the agent map the abbreviations correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Convert') with a clear resource ('weight') and enumerates all supported units. This distinguishes it from sibling converter tools such as length_converter or area_converter 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.
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 a weight conversion among g, kg, oz, lb, and st is needed. However, it does not explicitly mention alternatives or state when not to use this tool, leaving the 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_wheel_spinnerWheel spinnerARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | The list of names or options on the wheel (at least two) |
Output Schema
| Name | Required | Description |
|---|---|---|
| index | No | |
| winner | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint, so the safety profile is covered. The description adds meaningful behavioral detail beyond annotations by stating that selection is random, that every item has an equal chance, and that the chosen item is returned. This is useful for an agent deciding whether the behavior matches the user intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and every sentence adds relevant information: the action, the fairness property, the return value, and a source link. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with full schema coverage, a read-only annotation profile, and an output schema, the description is complete. An agent has enough information to decide whether this tool fits the request and to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already described as 'The list of names or options on the wheel (at least two)'. The description's mention of 'names or options' largely overlaps with the schema, adding limited new semantic value. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Spin a wheel of names or options and pick one at random.' It also conveys the return value and equal-probability behavior. However, it does not explicitly differentiate this tool from similar siblings such as spin_the_bottle or yes_no_wheel, so it misses the full sibling-discrimination bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied through the phrase 'wheel of names or options' and 'pick one at random', which suggests use for random selection from a list. However, there is no explicit guidance about when to choose this over alternatives like coin_flip, dice_roller, spin_the_bottle, 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_word_counterWord counterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to analyse |
Output Schema
| Name | Required | Description |
|---|---|---|
| words | No | |
| summary | No | |
| sentences | No | |
| characters | No | |
| paragraphs | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| readingTime | No | |
| charactersNoSpaces | No |
TDQS
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 specifics: character counts are provided with and without spaces, and reading time is estimated at a fixed 225 words per minute. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one compact, front-loaded sentence that lists all output types without padding. The source URL adds a small amount of noise but does not meaningfully hurt readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, one-parameter tool with an output schema, the description covers the key computed values and the reading-time assumption. Explicit routing among the overlapping sibling tools would improve it, but nothing essential about how to invoke it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single 'text' parameter, so the description does not need to add parameter-level detail. The phrase 'block of text' lightly reinforces the expected input but adds no real meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource ('Analyse a block of text') and enumerates the specific returned metrics: word count, character counts, sentence count, paragraph count, and reading time. It is clearly a text-statistics tool, though it does not explicitly contrast itself with close siblings such as hopi_character_counter or hopi_reading_time_calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of alternatives despite several overlapping siblings like hopi_character_counter, hopi_reading_time_calculator, and hopi_word_frequency_counter. An agent gets little help deciding whether this combined tool is preferable to a more targeted sibling.
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 counterARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to analyse | |
| ignoreStopwords | No | Ignore common words such as the, and, of, to (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| top | No | |
| total | No | |
| unique | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing it as a safe read operation. The description adds behavioral details such as sorting order, return of total/unique counts and top 20 words with percentages, and optional stop-word filtering. This goes beyond annotations and informs the agent of output expectations, though it doesn't mention edge cases like case sensitivity or punctuation handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a source URL. It is concise and front-loaded with the core function, then details the output. The source URL adds credibility but is not essential to the tool's operation. The structure is efficient, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and an output schema, the description is complete. It explains the purpose, output format, and optional parameter. It does not mention edge cases like case sensitivity or tokenization, but these are likely covered by the output schema and are not critical for correct invocation. The presence of the output schema reduces the need to describe return values in text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are described in the schema with 100% coverage. The description repeats the stop-word behavior (ignoreStopwords) but adds no new parameter semantics beyond what the schema already provides. The description's main value is in explaining the output, not the parameters, so it does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool counts word frequencies in a block of text and sorts them from most to least frequent. It specifies the verb 'count' and resource 'words', and its focus on frequency distribution distinguishes it from the sibling hopi_word_counter, which likely counts total words. The return details (total count, unique words, top 20 with percentages) further clarify its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives like hopi_word_counter or hopi_character_counter. It implies usage by describing its function, but lacks 'use when' or 'use instead' instructions. The presence of a close sibling (hopi_word_counter) without differentiation makes this a notable gap.
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 calculatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date in YYYY-MM-DD format | |
| from | Yes | Start date in YYYY-MM-DD format | |
| bankHolidays | No | Exclude England and Wales bank holidays as well as weekends (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | |
| from | No | |
| summary | No | |
| swapped | No | |
| totalDays | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| weekendDays | No | |
| workingDays | No | |
| bankHolidays | No | |
| bankHolidaysExcluded | No |
TDQS
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 behavioral details beyond that: inclusive date counting, the optional bank holiday exclusion, and a concrete limitation that bank holiday data only covers 2026 and 2027. It also cites the source for verification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, purposeful sentences. The core function is front-loaded, followed by date format, optional behavior, a material limitation, and a source. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculator with a complete input schema, rich annotations, and an output schema, this description covers everything the agent needs: what is counted, inclusive boundaries, date format, optional parameters, and data coverage limits. No significant gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by stating that both endpoints are included and that bank holiday exclusion only applies within 2026–2027, which affects interpretation of the bankHolidays parameter and the date range.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Count the working days (Monday to Friday) between two dates'. It further clarifies scope with 'inclusive of both ends' and 'optionally excluding England and Wales bank holidays', clearly separating it from sibling tools like hopi_days_between_dates or hopi_add_working_days.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear through its phrasing, but it gives no explicit when-to-use guidance or alternatives. Given similar sibling tools, an explicit note such as 'for calendar days between dates, use hopi_days_between_dates' would strengthen routing, but that is absent.
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 generatorARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Which list to draw from | |
| count | No | How many to draw, 1 to 20 (default 1) | |
| category | No | Optional category filter (would-you-rather: silly, food, travel, work, deep, kids; icebreaker: work, party, deep, kids). Omit for all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| count | No | |
| items | No | |
| summary | No | |
| category | No | |
| poolSize | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds useful behavioral context by stating that items are "drawn at random," are "distinct," and are "family-friendly," which are meaningful traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and output types. It includes the necessary category lists and a source link without excessive padding, though the category information is somewhat redundant with the input schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for a simple, read-only generator tool with a rich schema and an output schema. It covers all three modes, category constraints, random distinct outputs, and content tone, so an agent has enough context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents mode, count, and category behavior. The description mostly repeats the category lists already present in the schema; it adds context like "family-friendly" and random distinctness, but these do not significantly deepen parameter understanding beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: it "draws" would-you-rather pairs, icebreaker questions, and this-or-that pairs, optionally filtered by category. It also distinguishes itself from sibling generator tools by naming its three distinct output modes and the supported categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by listing its modes and categories, but it does not explicitly identify when not to use it or mention alternatives among the many sibling generator tools. The guidance is sufficient for simple selection but lacks explicit exclusions or routing.
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 noARead-onlyIdempotentInspect
Get a random yes or no decision, with an optional maybe. Returns the answer. Source: https://hopi.co.uk/yes-no-wheel/
| Name | Required | Description | Default |
|---|---|---|---|
| allowMaybe | No | Include 'maybe' as a possible answer (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| answer | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
TDQS
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 the randomness and the optional maybe behavior, which is the core functionality. It does not contradict annotations and provides a source URL. No additional behavioral details are needed given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence with the core action front-loaded: 'Get a random yes or no decision'. It includes a source URL which is extra but not detrimental. It is appropriately sized for a simple tool with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and an output schema available. The description covers the main behavior and the optional parameter. It does not explain return format, but the output schema covers that. No missing information an agent would need to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the only parameter (allowMaybe) with a clear description: 'Include maybe as a possible answer (default false)'. The tool description mentions 'optional maybe' which echoes the parameter but adds no new meaning. Baseline of 3 is appropriate when schema covers parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get a random yes or no decision' with an optional maybe. It distinguishes from sibling tools like hopi_coin_flip (heads/tails) or hopi_magic_8_ball (random answer) by focusing on the binary yes/no outcome. The phrase 'Returns the answer' clarifies the output type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly provide when to use this tool vs alternatives. It implies usage for binary decisions, but no comparison to sibling tools is given. An agent would need to infer from the name and description, which is sufficient for a simple tool but lacks explicit exclusions 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_zero_width_text_hiderZero-width text hiderARead-onlyIdempotentInspect
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/
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | hide, reveal or clean | |
| text | No | Reveal and clean modes: the text to inspect | |
| cover | No | Hide mode: the visible cover text that carries the message | |
| secret | No | Hide mode: the message to hide | |
| spread | No | Hide mode: distribute the invisible run evenly between words instead of placing it after the first word |
Output Schema
| Name | Required | Description |
|---|---|---|
| output | No | |
| summary | No | |
| source_url | No | The tool's page on hopi.co.uk (cite or open to check the figure) |
| invisibleCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive; the description adds considerable behavior beyond that: the exact invischaracter count formula (UTF-8 bytes x 4 + 1 end marker), the error condition for reveal, and the precise U+XXXX list that clean strips. It also discloses the 'not encryption' security limitation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: the main purpose is front-loaded, mode details are structured in order, and the caveat plus source URL are tucked at the end without bloat. Despite covering three modes and multiple parameters, the description remains tight and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers each mode's input requirements and return behavior, including the reveal error case, the hide character-count formula, and the full list of characters removed by clean. With an output schema and safety annotations already present, 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.
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 mostly restates the mode-to-parameter mapping already present in the schema ('Mode 'hide' takes cover and secret', etc.) and adds only the 'optional' qualifier for spread, which the schema already implies by not requiring it. No substantive new parameter insight is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete action triple: hide a secret message in ordinary text, reveal such a message, or clean zero-width characters. It names the exact resource (zero-width Unicode characters) and the 'This is hiding, not encryption' line explicitly distinguishes it from cipher and steganography siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for each mode, stating which inputs are needed and what each mode returns. It does not name sibling tools or provide explicit when-not-to-use guidance beyond the encryption caveat, so it stops short of a full 5.
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.
202 tool updates
- First observed
hopi_add_working_days - First observed
hopi_age_calculator - First observed
hopi_alcohol_unit_calculator - First observed
hopi_alphabetical_order - First observed
hopi_angle_converter - First observed
hopi_area_converter - First observed
hopi_aspect_ratio_calculator - First observed
hopi_average_calculator - First observed
hopi_base32_encoder - First observed
hopi_base64 - First observed
hopi_bill_splitter - First observed
hopi_bingo_card_generator - First observed
hopi_bitcoin_address_validator - First observed
hopi_bmi_calculator - First observed
hopi_body_fat_calculator - First observed
hopi_caesar_cipher - First observed
hopi_cagr_calculator - First observed
hopi_calories_to_kj - First observed
hopi_case_converter - First observed
hopi_cat_age_calculator - First observed
hopi_celsius_to_fahrenheit - First observed
hopi_character_counter - First observed
hopi_cipher_identifier - First observed
hopi_cm_to_feet - First observed
hopi_cmyk_to_rgb - First observed
hopi_coin_flip - First observed
hopi_colour_name_finder - First observed
hopi_colour_palette_generator - First observed
hopi_colour_picker - First observed
hopi_colour_shades_generator - First observed
hopi_combination_generator - First observed
hopi_compound_interest_calculator - First observed
hopi_contrast_checker - First observed
hopi_cron_expression_parser - First observed
hopi_crypto_profit_calculator - First observed
hopi_css_gradient_generator - First observed
hopi_css_minifier - First observed
hopi_csv_to_json - First observed
hopi_cups_to_grams - First observed
hopi_currency_converter - First observed
hopi_data_size_converter - First observed
hopi_date_calculator - First observed
hopi_day_of_week_calculator - First observed
hopi_day_rate_calculator - First observed
hopi_days_between_dates - First observed
hopi_days_until_christmas - First observed
hopi_dca_calculator - First observed
hopi_dice_roller - First observed
hopi_diff_checker - First observed
hopi_discount_calculator - First observed
hopi_dog_age_calculator - First observed
hopi_download_time_calculator - First observed
hopi_due_date_calculator - First observed
hopi_dummy_data_generator - First observed
hopi_email_link_generator - First observed
hopi_emoji_remover - First observed
hopi_energy_cost_calculator - First observed
hopi_env_to_json - First observed
hopi_eth_address_checksum - First observed
hopi_eth_unit_converter - First observed
hopi_euromillions_generator - First observed
hopi_event_wine_calculator - First observed
hopi_file_encrypter - First observed
hopi_fortune_cookie - First observed
hopi_fraction_calculator - First observed
hopi_fraction_to_decimal - First observed
hopi_fuel_cost_calculator - First observed
hopi_hash_generator - First observed
hopi_hash_identifier - First observed
hopi_heart_rate_zones - First observed
hopi_hex_to_rgb - First observed
hopi_hmac_generator - First observed
hopi_holiday_entitlement_calculator - First observed
hopi_hourly_to_salary - First observed
hopi_hours_calculator - First observed
hopi_hsl_converter - First observed
hopi_html_escape - First observed
hopi_http_status_codes - First observed
hopi_iban_validator - First observed
hopi_ics_generator - First observed
hopi_image_steganography - First observed
hopi_inflation_calculator - First observed
hopi_json_formatter - First observed
hopi_json_to_csv - First observed
hopi_json_to_typescript - First observed
hopi_json_yaml_converter - First observed
hopi_jwt_decoder - First observed
hopi_jwt_generator - First observed
hopi_kg_to_stone - First observed
hopi_leap_year_checker - First observed
hopi_length_converter - First observed
hopi_litres_to_pints - First observed
hopi_loan_calculator - First observed
hopi_lorem_ipsum_generator - First observed
hopi_lottery_number_generator - First observed
hopi_magic_8_ball - First observed
hopi_margin_calculator - First observed
hopi_markdown_previewer - First observed
hopi_market_cap_calculator - First observed
hopi_meta_tag_generator - First observed
hopi_miles_to_km - First observed
hopi_military_time_converter - First observed
hopi_minutes_to_hours - First observed
hopi_moon_phase_calculator - First observed
hopi_morse_code_translator - First observed
hopi_mortgage_calculator - First observed
hopi_mortgage_overpayment_calculator - First observed
hopi_mpg_converter - First observed
hopi_national_insurance_calculator - First observed
hopi_nato_phonetic_alphabet - First observed
hopi_net_to_gross - First observed
hopi_number_base_converter - First observed
hopi_number_to_words - First observed
hopi_oven_temperature_converter - First observed
hopi_overtime_pay_calculator - First observed
hopi_password_strength_checker - First observed
hopi_percentage_calculator - First observed
hopi_percentage_change_calculator - First observed
hopi_percentage_decrease_calculator - First observed
hopi_percentage_difference_calculator - First observed
hopi_percentage_increase_calculator - First observed
hopi_position_size_calculator - First observed
hopi_power_converter - First observed
hopi_pressure_converter - First observed
hopi_prime_factorisation_calculator - First observed
hopi_pro_rata_salary_calculator - First observed
hopi_product_feed_generator - First observed
hopi_public_key_message_encrypter - First observed
hopi_qr_code_reader - First observed
hopi_random_colour_generator - First observed
hopi_random_coordinates - First observed
hopi_random_letter_generator - First observed
hopi_random_number_generator - First observed
hopi_random_team_generator - First observed
hopi_random_word_generator - First observed
hopi_ratio_calculator - First observed
hopi_reading_time_calculator - First observed
hopi_redundancy_pay_calculator - First observed
hopi_remove_duplicate_lines - First observed
hopi_remove_extra_spaces - First observed
hopi_remove_line_breaks - First observed
hopi_reverse_text - First observed
hopi_rgb_to_hex - First observed
hopi_ring_size_converter - First observed
hopi_robots_txt_generator - First observed
hopi_roman_numerals_converter - First observed
hopi_rounding_calculator - First observed
hopi_running_pace_calculator - First observed
hopi_satoshi_converter - First observed
hopi_savings_goal_calculator - First observed
hopi_schema_markup_generator - First observed
hopi_scientific_calculator - First observed
hopi_secret_santa_generator - First observed
hopi_shoe_size_converter - First observed
hopi_sleep_calculator - First observed
hopi_slot_machine_picker - First observed
hopi_slug_generator - First observed
hopi_small_text_generator - First observed
hopi_special_characters - First observed
hopi_speed_converter - First observed
hopi_spin_the_bottle - First observed
hopi_sql_formatter - First observed
hopi_staking_calculator - First observed
hopi_stamp_duty_calculator - First observed
hopi_standard_deviation_calculator - First observed
hopi_star_sign_calculator - First observed
hopi_student_loan_calculator - First observed
hopi_take_home_pay_calculator - First observed
hopi_tarot_reader - First observed
hopi_tdee_calculator - First observed
hopi_test_card_number_generator - First observed
hopi_text_repeater - First observed
hopi_text_splitter - First observed
hopi_time_calculator - First observed
hopi_time_zone_converter - First observed
hopi_tip_calculator - First observed
hopi_totp_generator - First observed
hopi_triangle_calculator - First observed
hopi_ucas_points_calculator - First observed
hopi_unicode_inspector - First observed
hopi_unit_price_calculator - First observed
hopi_unix_timestamp_converter - First observed
hopi_upside_down_text - First observed
hopi_url_encoder - First observed
hopi_url_parser - First observed
hopi_user_agent_parser - First observed
hopi_username_generator - First observed
hopi_utm_link_generator - First observed
hopi_uuid_generator - First observed
hopi_vat_calculator - First observed
hopi_vigenere_cipher - First observed
hopi_volume_converter - First observed
hopi_water_intake_calculator - First observed
hopi_week_number - First observed
hopi_weight_converter - First observed
hopi_wheel_spinner - First observed
hopi_word_counter - First observed
hopi_word_frequency_counter - First observed
hopi_working_days_calculator - First observed
hopi_would_you_rather_generator - First observed
hopi_yes_no_wheel - First observed
hopi_zero_width_text_hider
Related MCP Connectors
70+ free calculators & converters as MCP tools; each result links to its source page.
Free calculators as MCP tools: finance, taxes, health, units, dates. Search, fetch & compute.
140+ calculators and data tools — finance, health, science, global comparisons and more.
Financial calculators over MCP: compound interest, FIRE, historical returns, deep links, 6 languages
Related MCP Servers
- AlicenseAqualityCmaintenanceThe 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.1518 npm1MIT

@mate-tools/mcp-serverofficial
AlicenseAqualityDmaintenanceMCP 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.3545 npmMIT- AlicenseAqualityCmaintenanceProvides 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.13MIT
- AlicenseNot gradedqualityBmaintenancePublic, 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
Glama MCP Gateway
Add one secure layer between your agents and this server.