MCP-Server

hopi

uk.co.hopi/hopi
Produktivität Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Provides read-only calculators, converters, validators, text utilities, encoders, and generators for everyday and technical tasks.

hopi_add_working_days
Add working days
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['start', 'days'], 'properties': {'days': {'type': 'integer', 'maximum': 100000, 'minimum': 0, 'description': 'Number of working days to move (0 to 100000)'}, 'start': {'type': 'string', 'format': 'date', 'description': 'Start date in YYYY-MM-DD format'}, 'direction': {'enum': ['add', 'sub'], 'type': 'string', 'default': 'add', 'description': "'add' to count forwards, 'sub' to count backwards (default 'add')"}, 'bankHolidays': {'type': 'boolean', 'default': True, 'description': 'Also skip England and Wales bank holidays, not just weekends (default true)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'days': {'type': 'number'}, 'start': {'type': 'string'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'weekday': {'type': 'string'}, 'complete': {'type': 'boolean'}, 'warnings': {'type': 'array'}, 'direction': {'type': 'string'}, 'resultLong': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'daysSpanned': {'type': 'number'}, 'bankHolidays': {'type': 'boolean'}, 'holidayCoverage': {'type': 'object'}, 'holidaysSkipped': {'type': 'number'}}, 'additionalProperties': True}
hopi_age_calculator
Age calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['dob'], 'properties': {'dob': {'type': 'string', 'format': 'date', 'description': 'Date of birth in YYYY-MM-DD format'}, 'asOf': {'type': 'string', 'format': 'date', 'description': 'Optional date to measure the age at, in YYYY-MM-DD format (defaults to today)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'dob': {'type': 'string'}, 'asOf': {'type': 'string'}, 'days': {'type': 'number'}, 'years': {'type': 'number'}, 'months': {'type': 'number'}, 'summary': {'type': 'string'}, 'totalDays': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'nextBirthdayInDays': {'type': 'number'}, 'nextBirthdayWeekday': {'type': 'string'}}, 'additionalProperties': True}
hopi_alcohol_unit_calculator
Alcohol unit calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['abv', 'ml'], 'properties': {'ml': {'type': 'number', 'description': 'Volume of the drink in millilitres, e.g. 175 for a medium glass of wine', 'exclusiveMinimum': 0}, 'abv': {'type': 'number', 'maximum': 100, 'description': 'Alcohol by volume as a percentage, e.g. 12 for 12% wine', 'exclusiveMinimum': 0}, 'drinksPerWeek': {'type': 'number', 'description': 'Optional number of these drinks per week, to work out a weekly units total', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['abv', 'ml', 'source_url', 'summary', 'units'], 'properties': {'ml': {'type': 'number'}, 'abv': {'type': 'number'}, 'units': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_alphabetical_order
Alphabetical order sorter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to sort, one item per line'}, 'direction': {'enum': ['asc', 'desc'], 'type': 'string', 'default': 'asc', 'description': "'asc' for A to Z (default), 'desc' for Z to A"}, 'caseInsensitive': {'type': 'boolean', 'default': False, 'description': 'Ignore letter case when sorting (default false)'}}}
Ausgabeschema
{'type': 'object', 'required': ['caseInsensitive', 'direction', 'lines', 'result', 'source_url', 'summary'], 'properties': {'lines': {'type': 'number'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'caseInsensitive': {'type': 'boolean'}}, 'additionalProperties': True}
hopi_angle_converter
Angle converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'from', 'to'], 'properties': {'to': {'enum': ['deg', 'rad', 'grad', 'turn'], 'type': 'string', 'description': 'Unit to convert to'}, 'from': {'enum': ['deg', 'rad', 'grad', 'turn'], 'type': 'string', 'description': 'Unit to convert from'}, 'value': {'type': 'number', 'description': 'The angle value to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['from', 'result', 'source_url', 'summary', 'to', 'value'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_area_converter
Area converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'from', 'to'], 'properties': {'to': {'enum': ['sqm', 'sqft', 'sqyd', 'acre', 'ha', 'sqkm', 'sqmi'], 'type': 'string', 'description': 'Unit to convert to'}, 'from': {'enum': ['sqm', 'sqft', 'sqyd', 'acre', 'ha', 'sqkm', 'sqmi'], 'type': 'string', 'description': 'Unit to convert from'}, 'value': {'type': 'number', 'minimum': 0, 'description': 'The area value to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['from', 'result', 'source_url', 'summary', 'to', 'value'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_aspect_ratio_calculator
Aspect ratio calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'simplify'}}}, 'then': {'required': ['width', 'height']}}, {'if': {'properties': {'mode': {'const': 'solve'}}}, 'then': {'required': ['ratioW', 'ratioH']}}], 'required': ['mode'], 'properties': {'mode': {'enum': ['simplify', 'solve'], 'type': 'string', 'description': "'simplify' a width and height, or 'solve' a missing side from a ratio"}, 'width': {'type': 'number', 'description': 'Width in pixels or units (simplify mode, or the known side in solve mode)', 'exclusiveMinimum': 0}, 'height': {'type': 'number', 'description': 'Height in pixels or units (simplify mode, or the known side in solve mode)', 'exclusiveMinimum': 0}, 'ratioH': {'type': 'number', 'description': 'Ratio height part, e.g. 9 (solve mode)', 'exclusiveMinimum': 0}, 'ratioW': {'type': 'number', 'description': 'Ratio width part, e.g. 16 (solve mode)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'ratio', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'ratio': {'type': 'string'}, 'decimal': {'type': 'string'}, 'nearest': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_average_calculator
Mean, median & mode calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['numbers'], 'properties': {'numbers': {'type': 'string', 'minLength': 1, 'description': 'A list of numbers separated by spaces, commas, semicolons or new lines'}}}
Ausgabeschema
{'type': 'object', 'required': ['count', 'max', 'mean', 'median', 'min', 'mode', 'modeValues', 'source_url', 'sum', 'summary'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'sum': {'type': 'number'}, 'mean': {'type': 'number'}, 'mode': {'type': 'string'}, 'count': {'type': 'number'}, 'median': {'type': 'number'}, 'summary': {'type': 'string'}, 'modeValues': {'type': ['array', 'null']}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_base32_encoder
Base32 encoder and decoder
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'mode': {'enum': ['encode', 'decode'], 'type': 'string', 'default': 'encode', 'description': "'encode' turns text into Base32, 'decode' turns Base32 back into text (default encode)"}, 'text': {'type': 'string', 'description': 'The text to encode, or the Base32 string to decode'}}}
Ausgabeschema
{'type': 'object', 'required': ['output', 'source_url', 'summary'], 'properties': {'output': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_base64
Base64 encode & decode
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text', 'mode'], 'properties': {'mode': {'enum': ['encode', 'decode'], 'type': 'string', 'description': "'encode' text to Base64, or 'decode' Base64 back to text"}, 'text': {'type': 'string', 'description': 'The text to encode, or the Base64 string to decode'}}}
Ausgabeschema
{'type': 'object', 'required': ['input', 'mode', 'output', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'input': {'type': 'string'}, 'output': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_bill_splitter
Bill splitter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'itemised'}}}, 'then': {'required': ['people', 'items']}}, {'if': {'properties': {'mode': {'const': 'even'}}}, 'then': {'required': ['total', 'peopleCount']}}], 'required': ['mode'], 'properties': {'mode': {'enum': ['itemised', 'even'], 'type': 'string', 'description': "'itemised' splits by item and who had it; 'even' splits one total equally"}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['amount'], 'properties': {'name': {'type': 'string', 'description': 'Item name'}, 'amount': {'type': 'number', 'minimum': 0, 'description': 'Item cost in GBP'}, 'assigned': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Names sharing this item; omit or empty for everyone'}}}, 'minItems': 1, 'description': 'Itemised mode: each item with its amount and the names who shared it. An item with no names is shared by everyone.'}, 'total': {'type': 'number', 'minimum': 0, 'description': 'Even mode: the bill total before tip'}, 'people': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Itemised mode: names of the people sharing the bill'}, 'tipPercent': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Tip as a percentage (default 0)'}, 'peopleCount': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Even mode: number of people to split between'}, 'servicePercent': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Itemised mode: service charge as a percentage (default 0)'}}}
Ausgabeschema
{'type': 'object', 'required': ['grandTotal', 'mode', 'perPerson', 'source_url', 'summary', 'tipPercent'], 'properties': {'tip': {'type': 'number'}, 'mode': {'type': 'string'}, 'total': {'type': 'number'}, 'summary': {'type': 'string'}, 'perPerson': {'type': ['number', 'object']}, 'grandTotal': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'tipPercent': {'type': 'number'}, 'peopleCount': {'type': 'number'}}, 'additionalProperties': True}
hopi_bingo_card_generator
Bingo card generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'count': {'type': 'integer', 'default': 1, 'maximum': 100, 'minimum': 1, 'description': 'How many cards to generate, 1 to 100 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['cards', 'count', 'source_url', 'summary'], 'properties': {'cards': {'type': 'array'}, 'count': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_bitcoin_address_validator
Bitcoin address validator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'The Bitcoin address to validate'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary', 'valid'], 'properties': {'type': {'type': 'string'}, 'valid': {'type': 'boolean'}, 'network': {'type': 'string'}, 'summary': {'type': 'string'}, 'encoding': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_bmi_calculator
BMI calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'units': {'const': 'metric'}}}, 'then': {'required': ['heightCm', 'weightKg']}}, {'if': {'properties': {'units': {'const': 'imperial'}}}, 'then': {'required': ['heightInches', 'weightPounds']}}], 'required': ['units'], 'properties': {'units': {'enum': ['metric', 'imperial'], 'type': 'string', 'description': "'metric' (cm and kg) or 'imperial' (inches and pounds)"}, 'heightCm': {'type': 'number', 'description': 'Height in centimetres (metric)', 'exclusiveMinimum': 0}, 'weightKg': {'type': 'number', 'description': 'Weight in kilograms (metric)', 'exclusiveMinimum': 0}, 'heightInches': {'type': 'number', 'description': 'Total height in inches (imperial)', 'exclusiveMinimum': 0}, 'weightPounds': {'type': 'number', 'description': 'Weight in pounds (imperial)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['bmi', 'category', 'source_url', 'summary', 'units'], 'properties': {'bmi': {'type': 'number'}, 'units': {'type': 'string'}, 'summary': {'type': 'string'}, 'category': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_body_fat_calculator
Body fat percentage calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'sex': {'const': 'female'}}}, 'then': {'required': ['hip']}}], 'required': ['sex', 'units', 'height', 'neck', 'waist'], 'properties': {'hip': {'type': 'number', 'description': 'Hip circumference, females only (cm if metric, inches if imperial)', 'exclusiveMinimum': 0}, 'sex': {'enum': ['male', 'female'], 'type': 'string', 'description': 'Biological sex, determines the formula and whether hip is needed'}, 'neck': {'type': 'number', 'description': 'Neck circumference (cm if metric, inches if imperial)', 'exclusiveMinimum': 0}, 'units': {'enum': ['metric', 'imperial'], 'type': 'string', 'description': "'metric' (cm) or 'imperial' (inches)"}, 'waist': {'type': 'number', 'description': 'Waist circumference (cm if metric, inches if imperial)', 'exclusiveMinimum': 0}, 'height': {'type': 'number', 'description': 'Height (cm if metric, inches if imperial)', 'exclusiveMinimum': 0}, 'weight': {'type': 'number', 'description': 'Optional weight (kg if metric, pounds if imperial) for fat and lean mass', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['bodyFatPercent', 'category', 'sex', 'source_url', 'summary', 'units'], 'properties': {'sex': {'type': 'string'}, 'units': {'type': 'string'}, 'summary': {'type': 'string'}, 'category': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'bodyFatPercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_caesar_cipher
Caesar cipher & ROT13
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text', 'shift'], 'properties': {'mode': {'enum': ['encode', 'decode'], 'type': 'string', 'default': 'encode', 'description': "'encode' to apply the shift, 'decode' to reverse it (default encode)"}, 'text': {'type': 'string', 'description': 'The text to transform'}, 'shift': {'type': 'integer', 'description': 'How many places to shift each letter (e.g. 3, or 13 for ROT13)'}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'result', 'shift', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'shift': {'type': 'number'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_cagr_calculator
CAGR calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['start', 'end', 'years'], 'properties': {'end': {'type': 'number', 'minimum': 0, 'description': 'Ending value'}, 'start': {'type': 'number', 'description': 'Starting value (must be greater than zero)', 'exclusiveMinimum': 0}, 'years': {'type': 'number', 'maximum': 200, 'description': 'Number of years over the period (may be a fraction)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'end': {'type': 'number'}, 'start': {'type': 'number'}, 'years': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'cagrPercent': {'type': 'number'}, 'growthMultiple': {'type': 'number'}, 'shortPeriodWarning': {'type': 'boolean'}, 'totalGrowthPercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_calories_to_kj
Calories to kJ converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['amount', 'unit'], 'properties': {'unit': {'enum': ['kcal', 'kj'], 'type': 'string', 'description': "The unit of the amount: 'kcal' (kilocalories) or 'kj' (kilojoules)"}, 'amount': {'type': 'number', 'description': 'The energy amount to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['kcal', 'kj', 'source_url', 'summary'], 'properties': {'kj': {'type': 'number'}, 'kcal': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_case_converter
Case converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text', 'mode'], 'properties': {'mode': {'enum': ['upper', 'lower', 'title', 'sentence'], 'type': 'string', 'description': 'The target case'}, 'text': {'type': 'string', 'description': 'The text to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'result', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_cat_age_calculator
Cat age calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['catAge'], 'properties': {'catAge': {'type': 'number', 'maximum': 40, 'minimum': 0, 'description': "The cat's age in years (0 to 40)"}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'stage': {'type': 'string'}, 'catAge': {'type': 'number'}, 'summary': {'type': 'string'}, 'humanYears': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_celsius_to_fahrenheit
Temperature converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'direction'], 'properties': {'value': {'type': 'number', 'description': 'The temperature value to convert'}, 'direction': {'enum': ['c-to-f', 'f-to-c'], 'type': 'string', 'description': "'c-to-f' converts Celsius to Fahrenheit, 'f-to-c' converts Fahrenheit to Celsius"}}}
Ausgabeschema
{'type': 'object', 'required': ['celsius', 'direction', 'fahrenheit', 'kelvin', 'source_url', 'summary'], 'properties': {'kelvin': {'type': 'number'}, 'celsius': {'type': 'number'}, 'summary': {'type': 'string'}, 'direction': {'type': 'string'}, 'fahrenheit': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_character_counter
Character counter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to measure'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'words': {'type': 'number'}, 'summary': {'type': 'string'}, 'smsParts': {'type': 'number'}, 'characters': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'tweetRemaining': {'type': 'number'}, 'charactersNoSpaces': {'type': 'number'}}, 'additionalProperties': True}
hopi_cipher_identifier
Cipher identifier and auto-decoder
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'minLength': 1, 'description': 'The unknown text to identify and decode'}}}
Ausgabeschema
{'type': 'object', 'required': ['candidates', 'chain', 'plaintext', 'source_url', 'summary'], 'properties': {'chain': {'type': 'array'}, 'summary': {'type': 'string'}, 'plaintext': {'type': 'string'}, 'candidates': {'type': 'array'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_cm_to_feet
Cm to feet converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'direction': {'const': 'cm-to-feet'}}}, 'then': {'required': ['cm']}}], 'required': ['direction'], 'properties': {'cm': {'type': 'number', 'minimum': 0, 'description': 'Centimetres (for cm-to-feet)'}, 'feet': {'type': 'number', 'minimum': 0, 'description': 'Feet (for feet-to-cm)'}, 'inches': {'type': 'number', 'minimum': 0, 'description': 'Inches (for feet-to-cm, optional)'}, 'direction': {'enum': ['cm-to-feet', 'feet-to-cm'], 'type': 'string', 'description': 'Which way to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['cm', 'direction', 'feet', 'inches', 'source_url', 'summary'], 'properties': {'cm': {'type': 'number'}, 'feet': {'type': 'number'}, 'inches': {'type': 'number'}, 'summary': {'type': 'string'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'feetDecimal': {'type': 'number'}, 'totalInches': {'type': 'number'}}, 'additionalProperties': True}
hopi_cmyk_to_rgb
CMYK to RGB converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'cmyk_to_rgb'}}}, 'then': {'required': ['c', 'm', 'y', 'k']}}, {'if': {'properties': {'mode': {'const': 'rgb_to_cmyk'}}}, 'then': {'required': ['r', 'g', 'b']}}], 'required': ['mode'], 'properties': {'b': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'Blue 0 to 255 (for rgb_to_cmyk)'}, 'c': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Cyan 0 to 100 (for cmyk_to_rgb)'}, 'g': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'Green 0 to 255 (for rgb_to_cmyk)'}, 'k': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Key/black 0 to 100 (for cmyk_to_rgb)'}, 'm': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Magenta 0 to 100 (for cmyk_to_rgb)'}, 'r': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'Red 0 to 255 (for rgb_to_cmyk)'}, 'y': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Yellow 0 to 100 (for cmyk_to_rgb)'}, 'mode': {'enum': ['cmyk_to_rgb', 'rgb_to_cmyk'], 'type': 'string', 'description': 'Direction of conversion'}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'source_url', 'summary'], 'properties': {'hex': {'type': 'string'}, 'rgb': {'type': 'array'}, 'mode': {'type': 'string'}, 'summary': {'type': 'string'}, 'rgbString': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_coin_flip
Coin flip
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'count': {'type': 'integer', 'default': 1, 'maximum': 10000, 'minimum': 1, 'description': 'How many coins to flip, 1 to 10000 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['count', 'heads', 'results', 'source_url', 'summary', 'tails'], 'properties': {'count': {'type': 'number'}, 'heads': {'type': 'number'}, 'tails': {'type': 'number'}, 'results': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_colour_name_finder
Colour name finder
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', 'description': 'Hex colour code, e.g. #DC143C or #F00'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'name': {'type': 'string'}, 'exact': {'type': 'boolean'}, 'input': {'type': 'string'}, 'names': {'type': 'array'}, 'summary': {'type': 'string'}, 'distance': {'type': 'number'}, 'nearestHex': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_colour_palette_generator
Colour palette generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#?[0-9a-fA-F]{6}$', 'description': 'Base colour as a six-digit hex code, e.g. #1F8A70'}, 'scheme': {'enum': ['analogous', 'complementary', 'triadic', 'mixed'], 'type': 'string', 'default': 'analogous', 'description': 'Colour scheme (default analogous)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'base': {'type': 'string'}, 'scheme': {'type': 'string'}, 'palette': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_colour_picker
Colour picker
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#?[0-9a-fA-F]{6}$', 'description': 'Six-digit hex colour code, e.g. #1F8A70'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'hex': {'type': 'string'}, 'hsl': {'type': 'array'}, 'rgb': {'type': 'array'}, 'summary': {'type': 'string'}, 'hslString': {'type': 'string'}, 'rgbString': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_colour_shades_generator
Shades & tints generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#?[0-9a-fA-F]{6}$', 'description': 'Base colour as a six-digit hex code, e.g. #1F8A70'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'base': {'type': 'string'}, 'tints': {'type': 'array'}, 'shades': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_combination_generator
Combination generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['items', 'choose'], 'properties': {'items': {'type': 'array', 'maxItems': 10000, 'minItems': 1, 'description': 'The list of items to choose from'}, 'choose': {'type': 'integer', 'minimum': 1, 'description': 'How many items to pick in each combination (r)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'count': {'type': 'string'}, 'summary': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'combinations': {'type': 'array'}}, 'additionalProperties': True}
hopi_compound_interest_calculator
Compound interest calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['rate', 'years'], 'properties': {'rate': {'type': 'number', 'minimum': 0, 'description': 'Annual interest rate as a percentage'}, 'years': {'type': 'number', 'maximum': 100, 'description': 'Term in years (1 to 100)', 'exclusiveMinimum': 0}, 'monthly': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Monthly contribution in GBP (default 0)'}, 'principal': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Starting deposit in GBP (default 0)'}}}
Ausgabeschema
{'type': 'object', 'required': ['finalBalance', 'interestEarned', 'monthly', 'months', 'principal', 'rate', 'source_url', 'summary', 'totalPaidIn', 'years'], 'properties': {'rate': {'type': 'number'}, 'years': {'type': 'number'}, 'months': {'type': 'number'}, 'monthly': {'type': 'number'}, 'summary': {'type': 'string'}, 'principal': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'totalPaidIn': {'type': 'number'}, 'finalBalance': {'type': 'number'}, 'interestEarned': {'type': 'number'}}, 'additionalProperties': True}
hopi_contrast_checker
Contrast checker
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['foreground', 'background'], 'properties': {'background': {'type': 'string', 'pattern': '^#?[0-9a-fA-F]{6}$', 'description': 'Background colour as a six-digit hex code, e.g. #FFFFFF'}, 'foreground': {'type': 'string', 'pattern': '^#?[0-9a-fA-F]{6}$', 'description': 'Text colour as a six-digit hex code, e.g. #767676'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'ratio': {'type': 'number'}, 'aaLarge': {'type': 'boolean'}, 'summary': {'type': 'string'}, 'verdict': {'type': 'string'}, 'aaNormal': {'type': 'boolean'}, 'aaaLarge': {'type': 'boolean'}, 'aaaNormal': {'type': 'boolean'}, 'background': {'type': 'string'}, 'foreground': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'ratioString': {'type': 'string'}}, 'additionalProperties': True}
hopi_cron_expression_parser
Cron expression translator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['expression'], 'properties': {'expression': {'type': 'string', 'minLength': 1, 'description': "A five-field cron expression, for example '*/5 9-17 * * MON-FRI', or a shortcut like @daily"}}}
Ausgabeschema
{'type': 'object', 'required': ['dayOfMonth', 'dayOfWeek', 'english', 'expression', 'hour', 'minute', 'month', 'source_url', 'summary'], 'properties': {'hour': {'type': 'string'}, 'month': {'type': 'string'}, 'minute': {'type': 'string'}, 'english': {'type': 'string'}, 'summary': {'type': 'string'}, 'dayOfWeek': {'type': 'string'}, 'dayOfMonth': {'type': 'string'}, 'expression': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_crypto_profit_calculator
Crypto profit calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['buy', 'quantity'], 'properties': {'buy': {'type': 'number', 'description': 'Buy price per unit', 'exclusiveMinimum': 0}, 'fee': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Fee percentage charged on each side (default 0, must be 0 to under 100)', 'exclusiveMaximum': 100}, 'sell': {'type': 'number', 'minimum': 0, 'description': 'Sell price per unit (optional; omit to see breakeven only)'}, 'quantity': {'type': 'number', 'description': 'Quantity of coin traded', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['breakeven', 'breakevenString', 'source_url', 'summary'], 'properties': {'profit': {'type': 'number'}, 'summary': {'type': 'string'}, 'breakeven': {'type': 'number'}, 'totalFees': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'profitString': {'type': 'string'}, 'returnPercent': {'type': 'number'}, 'breakevenString': {'type': 'string'}, 'totalFeesString': {'type': 'string'}, 'returnPercentString': {'type': 'string'}}, 'additionalProperties': True}
hopi_css_gradient_generator
CSS gradient generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['colour1', 'colour2'], 'properties': {'type': {'enum': ['linear', 'radial'], 'type': 'string', 'default': 'linear', 'description': 'Gradient type (default linear)'}, 'angle': {'type': 'number', 'default': 90, 'maximum': 360, 'minimum': 0, 'description': 'Angle in degrees for a linear gradient (default 90)'}, 'colour1': {'type': 'string', 'description': 'First colour, e.g. #FF512F'}, 'colour2': {'type': 'string', 'description': 'Second colour, e.g. #DD2476'}}}
Ausgabeschema
{'type': 'object', 'required': ['angle', 'css', 'gradient', 'source_url', 'summary', 'type'], 'properties': {'css': {'type': 'string'}, 'type': {'type': 'string'}, 'angle': {'type': ['number', 'null']}, 'summary': {'type': 'string'}, 'gradient': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_css_minifier
CSS minifier
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['css'], 'properties': {'css': {'type': 'string', 'minLength': 1, 'description': 'The CSS source to minify'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'css': {'type': 'string'}, 'summary': {'type': 'string'}, 'afterBytes': {'type': 'number'}, 'savedBytes': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'beforeBytes': {'type': 'number'}, 'savedPercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_csv_to_json
CSV to JSON converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['csv'], 'properties': {'csv': {'type': 'string', 'minLength': 1, 'description': 'The CSV text to convert'}, 'firstRowHeaders': {'type': 'boolean', 'default': True, 'description': 'When true, the first row supplies the object keys; when false, every row becomes a plain array of strings (default true)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'data': {'type': 'array'}, 'json': {'type': 'string'}, 'rows': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'firstRowHeaders': {'type': 'boolean'}}, 'additionalProperties': True}
hopi_cups_to_grams
Cups to grams converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['cups', 'ingredient'], 'properties': {'cups': {'type': 'number', 'minimum': 0, 'description': 'Number of US cups'}, 'ingredient': {'enum': ['flour', 'caster', 'brown', 'butter', 'cocoa', 'oats', 'rice', 'icing'], 'type': 'string', 'description': 'The ingredient'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'cups': {'type': 'number'}, 'grams': {'type': 'number'}, 'summary': {'type': 'string'}, 'ingredient': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'gramsPerCup': {'type': 'number'}}, 'additionalProperties': True}
hopi_currency_converter
Currency converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['amount', 'from', 'to'], 'properties': {'to': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'maxLength': 3, 'minLength': 3, 'description': 'Currency to convert to, ISO 4217 code e.g. EUR'}, 'from': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'maxLength': 3, 'minLength': 3, 'description': 'Currency to convert from, ISO 4217 code e.g. GBP'}, 'amount': {'type': 'number', 'description': 'The amount to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'rate': {'type': 'number'}, 'amount': {'type': 'number'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'asOfUnix': {'type': ['number', 'null']}, 'complete': {'type': 'boolean'}, 'warnings': {'type': 'array'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'rateAgeHours': {}}, 'additionalProperties': True}
hopi_data_size_converter
Data size converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'from', 'to'], 'properties': {'to': {'enum': ['B', 'KB', 'MB', 'GB', 'TB'], 'type': 'string', 'description': 'Unit to convert to'}, 'from': {'enum': ['B', 'KB', 'MB', 'GB', 'TB'], 'type': 'string', 'description': 'Unit to convert from'}, 'value': {'type': 'number', 'minimum': 0, 'description': 'The size value to convert'}, 'binary': {'type': 'boolean', 'default': False, 'description': 'Use binary units (1 KB = 1024 bytes) instead of decimal (default false)'}}}
Ausgabeschema
{'type': 'object', 'required': ['binary', 'from', 'result', 'source_url', 'summary', 'to', 'value'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'binary': {'type': 'boolean'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_date_calculator
Date calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['date', 'amount'], 'properties': {'date': {'type': 'string', 'format': 'date', 'description': 'Start date in YYYY-MM-DD format'}, 'unit': {'enum': ['days', 'weeks', 'months', 'years'], 'type': 'string', 'default': 'days', 'description': "Unit to move by (default 'days')"}, 'amount': {'type': 'integer', 'maximum': 100000, 'minimum': 0, 'description': 'How many units to move (0 to 100000)'}, 'direction': {'enum': ['add', 'subtract'], 'type': 'string', 'default': 'add', 'description': "'add' to move forwards, 'subtract' to move backwards (default 'add')"}}}
Ausgabeschema
{'type': 'object', 'required': ['amount', 'date', 'direction', 'result', 'resultLong', 'source_url', 'summary', 'unit', 'weekday'], 'properties': {'date': {'type': 'string'}, 'unit': {'type': 'string'}, 'amount': {'type': 'number'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'weekday': {'type': 'string'}, 'direction': {'type': 'string'}, 'resultLong': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_day_of_week_calculator
Day of the week finder
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['date'], 'properties': {'date': {'type': 'string', 'format': 'date', 'description': 'The date in YYYY-MM-DD format'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'date': {'type': 'string'}, 'summary': {'type': 'string'}, 'weekday': {'type': 'string'}, 'fullDate': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'thisYearWeekday': {'type': 'string'}}, 'additionalProperties': True}
hopi_day_rate_calculator
Day rate to salary calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'to_salary'}}}, 'then': {'required': ['dayRate']}}, {'if': {'properties': {'mode': {'const': 'to_rate'}}}, 'then': {'required': ['salary']}}], 'required': ['mode'], 'properties': {'mode': {'enum': ['to_salary', 'to_rate'], 'type': 'string', 'description': "'to_salary' from a day rate, or 'to_rate' from a salary"}, 'salary': {'type': 'number', 'maximum': 100000000, 'minimum': 0, 'description': 'Annual salary in GBP (required for to_rate)'}, 'dayRate': {'type': 'number', 'maximum': 1000000, 'minimum': 0, 'description': 'Day rate in GBP (required for to_salary)'}, 'workingDays': {'type': 'number', 'default': 220, 'maximum': 365, 'minimum': 1, 'description': 'Billable working days per year, 1 to 365 (default 220)'}}}
Ausgabeschema
{'type': 'object', 'required': ['dayRate', 'mode', 'source_url', 'summary', 'weekly', 'workingDays'], 'properties': {'mode': {'type': 'string'}, 'annual': {'type': 'number'}, 'weekly': {'type': 'number'}, 'dayRate': {'type': 'number'}, 'monthly': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'workingDays': {'type': 'number'}}, 'additionalProperties': True}
hopi_days_between_dates
Days between dates calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'format': 'date', 'description': 'End date in YYYY-MM-DD format'}, 'from': {'type': 'string', 'format': 'date', 'description': 'Start date in YYYY-MM-DD format'}, 'inclusive': {'type': 'boolean', 'default': False, 'description': 'Count both end days rather than excluding the end day (default false)'}}}
Ausgabeschema
{'type': 'object', 'required': ['days', 'from', 'inclusive', 'remainderDays', 'source_url', 'summary', 'swapped', 'to', 'weekdays', 'weeks'], 'properties': {'to': {'type': 'string'}, 'days': {'type': 'number'}, 'from': {'type': 'string'}, 'weeks': {'type': 'number'}, 'summary': {'type': 'string'}, 'swapped': {'type': 'boolean'}, 'weekdays': {'type': 'number'}, 'inclusive': {'type': 'boolean'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'remainderDays': {'type': 'number'}}, 'additionalProperties': True}
hopi_days_until_christmas
Days until Christmas
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'from': {'type': 'string', 'format': 'date', 'description': 'Optional date to count from, in YYYY-MM-DD format (defaults to today)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'sleeps': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'christmasDate': {'type': 'string'}, 'isChristmasDay': {'type': 'boolean'}, 'christmasWeekday': {'type': 'string'}}, 'additionalProperties': True}
hopi_dca_calculator
Crypto DCA calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['buys'], 'properties': {'buys': {'type': 'array', 'items': {'type': 'object', 'required': ['amount', 'price'], 'properties': {'price': {'type': 'number', 'description': 'Price paid per unit on this buy', 'exclusiveMinimum': 0}, 'amount': {'type': 'number', 'description': 'Money spent on this buy', 'exclusiveMinimum': 0}}}, 'minItems': 1, 'description': 'The list of buys'}, 'currentPrice': {'type': 'number', 'description': 'Current price per unit (optional), to value the position now', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['averageCost', 'averageCostString', 'buys', 'coinsAcquired', 'coinsAcquiredString', 'source_url', 'summary', 'totalInvested', 'totalInvestedString'], 'properties': {'buys': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'averageCost': {'type': 'number'}, 'coinsAcquired': {'type': 'number'}, 'totalInvested': {'type': 'number'}, 'averageCostString': {'type': 'string'}, 'coinsAcquiredString': {'type': 'string'}, 'totalInvestedString': {'type': 'string'}}, 'additionalProperties': True}
hopi_dice_roller
Dice roller
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'sides': {'type': 'integer', 'default': 6, 'minimum': 2, 'description': 'Number of sides on each die (default 6)'}, 'quantity': {'type': 'integer', 'default': 1, 'maximum': 20, 'minimum': 1, 'description': 'How many dice to roll, 1 to 20 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['highest', 'lowest', 'quantity', 'results', 'sides', 'source_url', 'summary', 'total'], 'properties': {'sides': {'type': 'number'}, 'total': {'type': 'number'}, 'lowest': {'type': 'number'}, 'highest': {'type': 'number'}, 'results': {'type': 'array'}, 'summary': {'type': 'string'}, 'quantity': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_diff_checker
Diff checker
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['a', 'b'], 'properties': {'a': {'type': 'string', 'description': 'The original (left) text'}, 'b': {'type': 'string', 'description': 'The changed (right) text'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'diff': {'type': 'string'}, 'added': {'type': 'number'}, 'removed': {'type': 'number'}, 'summary': {'type': 'string'}, 'identical': {'type': 'boolean'}, 'addedLines': {'type': 'array'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'removedLines': {'type': 'array'}}, 'additionalProperties': True}
hopi_discount_calculator
Discount & sale price calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'pct'}}}, 'then': {'required': ['percentOff'], 'properties': {'price': {'minimum': 0}}}}, {'if': {'properties': {'mode': {'const': 'fixed'}}}, 'then': {'required': ['amountOff'], 'properties': {'price': {'exclusiveMinimum': 0}}}}, {'if': {'properties': {'mode': {'const': 'find'}}}, 'then': {'required': ['finalPrice'], 'properties': {'price': {'exclusiveMinimum': 0}}}}], 'required': ['mode', 'price'], 'properties': {'mode': {'enum': ['pct', 'fixed', 'find'], 'type': 'string', 'description': "'pct' percentage off, 'fixed' pound amount off, or 'find' the discount from two prices"}, 'price': {'type': 'number', 'description': 'The original price (used in all modes)'}, 'amountOff': {'type': 'number', 'description': "Fixed pound amount off (mode 'fixed' only)"}, 'finalPrice': {'type': 'number', 'description': "The final price paid (mode 'find' only)"}, 'percentOff': {'type': 'number', 'description': "Discount percentage (mode 'pct' only)"}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'price', 'saving', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'price': {'type': 'number'}, 'saving': {'type': 'number'}, 'summary': {'type': 'string'}, 'salePrice': {'type': 'number'}, 'percentOff': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'effectiveDiscount': {'type': 'number'}}, 'additionalProperties': True}
hopi_dog_age_calculator
Dog age calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['dogAge'], 'properties': {'size': {'enum': ['small', 'medium', 'large'], 'type': 'string', 'default': 'medium', 'description': "Dog size band (default 'medium')"}, 'dogAge': {'type': 'number', 'maximum': 30, 'minimum': 0, 'description': "The dog's age in years (0 to 30)"}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'size': {'type': 'string'}, 'dogAge': {'type': 'number'}, 'summary': {'type': 'string'}, 'humanYears': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_download_time_calculator
Download time calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['size', 'sizeUnit', 'speed', 'speedUnit'], 'properties': {'size': {'type': 'number', 'minimum': 0, 'description': 'File size value'}, 'speed': {'type': 'number', 'description': 'Connection speed value', 'exclusiveMinimum': 0}, 'sizeUnit': {'enum': ['MB', 'GB', 'TB'], 'type': 'string', 'description': 'File size unit'}, 'speedUnit': {'enum': ['Mbps', 'MBps', 'Gbps'], 'type': 'string', 'description': 'Speed unit: Mbps/Gbps are bits per second, MBps is megabytes per second'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'size': {'type': 'number'}, 'speed': {'type': 'number'}, 'seconds': {'type': 'number'}, 'summary': {'type': 'string'}, 'duration': {'type': 'string'}, 'sizeUnit': {'type': 'string'}, 'speedUnit': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'megabytesPerSecond': {'type': 'number'}}, 'additionalProperties': True}
hopi_due_date_calculator
Pregnancy due date calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['lmp'], 'properties': {'lmp': {'type': 'string', 'format': 'date', 'description': "First day of the last menstrual period, ISO date 'YYYY-MM-DD'"}, 'cycleLength': {'type': 'integer', 'default': 28, 'maximum': 45, 'minimum': 20, 'description': 'Cycle length in days, 20 to 45 (default 28)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'lmp': {'type': 'string'}, 'dueDate': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'cycleLength': {'type': 'number'}, 'trimester2Starts': {'type': 'string'}, 'trimester3Starts': {'type': 'string'}}, 'additionalProperties': True}
hopi_dummy_data_generator
Dummy data generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'How many records to generate, from 1 to 1000'}, 'fields': {'type': 'array', 'items': {'enum': ['firstName', 'lastName', 'fullName', 'email', 'ukMobile', 'ukLandline', 'streetAddress', 'town', 'postcode', 'dateOfBirth', 'company'], 'type': 'string'}, 'description': 'Which fields to include (default all). Choose from firstName, lastName, fullName, email, ukMobile, ukLandline, streetAddress, town, postcode, dateOfBirth, company'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'csv': {'type': 'string'}, 'rows': {'type': 'array'}, 'count': {'type': 'number'}, 'fields': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_email_link_generator
Email link generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['to'], 'properties': {'cc': {'type': 'string', 'description': 'Optional cc addresses, separated by commas or semicolons'}, 'to': {'type': 'string', 'minLength': 1, 'description': 'One or more recipient addresses, separated by commas or semicolons'}, 'bcc': {'type': 'string', 'description': 'Optional bcc addresses, separated by commas or semicolons'}, 'body': {'type': 'string', 'description': 'Optional body text; line breaks are preserved'}, 'subject': {'type': 'string', 'description': 'Optional subject line'}, 'linkText': {'type': 'string', 'default': 'Email us', 'description': "Optional visible text for the HTML anchor (default 'Email us')"}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'url': {'type': 'string'}, 'html': {'type': 'string'}, 'summary': {'type': 'string'}, 'warning': {'type': ['string', 'null']}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_emoji_remover
Emoji remover
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to clean'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'result': {'type': 'string'}, 'removed': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_energy_cost_calculator
Energy running cost calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['watts', 'hoursPerDay', 'pencePerKwh'], 'properties': {'watts': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Appliance power draw in watts (0 to 100000)'}, 'hoursPerDay': {'type': 'number', 'maximum': 24, 'minimum': 0, 'description': 'Hours used per day (0 to 24)'}, 'pencePerKwh': {'type': 'number', 'minimum': 0, 'description': 'Electricity unit price in pence per kWh'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'watts': {'type': 'number'}, 'summary': {'type': 'string'}, 'kwhPerDay': {'type': 'number'}, 'costPerDay': {'type': 'number'}, 'kwhPerYear': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'costPerWeek': {'type': 'number'}, 'costPerYear': {'type': 'number'}, 'hoursPerDay': {'type': 'number'}, 'pencePerKwh': {'type': 'number'}, 'costPerMonth': {'type': 'number'}}, 'additionalProperties': True}
hopi_env_to_json
env to JSON converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'mode': {'enum': ['env-to-json', 'json-to-env'], 'type': 'string', 'default': 'env-to-json', 'description': "'env-to-json' parses a .env file into JSON, 'json-to-env' turns a JSON object into .env lines (default env-to-json)"}, 'text': {'type': 'string', 'description': 'The .env file text, or the JSON object text, depending on mode'}}}
Ausgabeschema
{'type': 'object', 'required': ['output', 'source_url', 'summary'], 'properties': {'output': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_eth_address_checksum
Ethereum address checksum
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'The Ethereum address, with or without a 0x prefix'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary', 'valid'], 'properties': {'note': {'type': 'string'}, 'valid': {'type': 'boolean'}, 'status': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'checksummed': {'type': 'string'}}, 'additionalProperties': True}
hopi_eth_unit_converter
ETH unit converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['amount', 'unit'], 'properties': {'unit': {'enum': ['wei', 'gwei', 'eth'], 'type': 'string', 'description': 'The unit the amount is given in'}, 'amount': {'type': 'string', 'description': 'The amount to convert, as a plain number (string preferred to keep full precision), e.g. "1.5"'}}}
Ausgabeschema
{'type': 'object', 'required': ['eth', 'ethPretty', 'gwei', 'gweiPretty', 'source_url', 'summary', 'wei', 'weiPretty'], 'properties': {'eth': {'type': 'string'}, 'wei': {'type': 'string'}, 'gwei': {'type': 'string'}, 'summary': {'type': 'string'}, 'ethPretty': {'type': 'string'}, 'weiPretty': {'type': 'string'}, 'gweiPretty': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_euromillions_generator
EuroMillions number generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'lines': {'type': 'integer', 'default': 1, 'maximum': 10, 'minimum': 1, 'description': 'How many lines to generate, 1 to 10 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'lines': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_event_wine_calculator
Event wine calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['guests'], 'properties': {'guests': {'type': 'number', 'description': 'Number of guests'}, 'redSize': {'type': 'number', 'description': 'Red glass size in ml: 125, 175 or 250'}, 'whiteSize': {'type': 'number', 'description': 'White glass size in ml: 125, 175 or 250'}, 'redGlasses': {'type': 'number', 'description': 'Glasses of red per guest'}, 'redDifferent': {'type': 'boolean', 'description': 'Serve a different red for each glass'}, 'whiteGlasses': {'type': 'number', 'description': 'Glasses of white per guest'}, 'sparklingSize': {'type': 'number', 'description': 'Sparkling glass size in ml: 100, 125 or 150'}, 'whiteDifferent': {'type': 'boolean', 'description': 'Serve a different white for each glass'}, 'sparklingGlasses': {'type': 'number', 'description': 'Glasses of Champagne or sparkling per guest'}, 'sparklingDifferent': {'type': 'boolean', 'description': 'Serve a different sparkling for each glass'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'guests': {'type': 'number'}, 'summary': {'type': 'string'}, 'breakdown': {'type': 'array'}, 'overageMl': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'totalBottles': {'type': 'number'}, 'glassesPerGuest': {'type': 'number'}}, 'additionalProperties': True}
hopi_fortune_cookie
Fortune cookie
Crack open a virtual fortune cookie and receive a random cheerful fortune. Returns the fortune. Source: https://hopi.co.uk/fortune-cookie/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'fortune': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_fraction_calculator
Fraction calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['op', 'n1', 'd1', 'n2', 'd2'], 'properties': {'d1': {'not': {'const': 0}, 'type': 'integer', 'description': 'First denominator (not zero)'}, 'd2': {'not': {'const': 0}, 'type': 'integer', 'description': 'Second denominator (not zero)'}, 'n1': {'type': 'integer', 'description': 'First numerator'}, 'n2': {'type': 'integer', 'description': 'Second numerator'}, 'op': {'enum': ['add', 'sub', 'mul', 'div'], 'type': 'string', 'description': 'Operation: add, sub (subtract), mul (multiply) or div (divide)'}}}
Ausgabeschema
{'type': 'object', 'required': ['decimal', 'denominator', 'mixed', 'numerator', 'op', 'result', 'source_url', 'summary'], 'properties': {'op': {'type': 'string'}, 'mixed': {'type': ['string', 'null']}, 'result': {'type': 'string'}, 'decimal': {'type': 'number'}, 'summary': {'type': 'string'}, 'numerator': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'denominator': {'type': 'number'}}, 'additionalProperties': True}
hopi_fraction_to_decimal
Fraction to decimal converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'toDecimal'}}}, 'then': {'required': ['numerator', 'denominator']}}, {'if': {'properties': {'mode': {'const': 'toFraction'}}}, 'then': {'required': ['decimal']}}], 'required': ['mode'], 'properties': {'mode': {'enum': ['toDecimal', 'toFraction'], 'type': 'string', 'description': "'toDecimal' from a fraction, or 'toFraction' from a decimal"}, 'decimal': {'type': 'number', 'description': "The decimal to convert (mode 'toFraction')"}, 'numerator': {'type': 'integer', 'description': "Numerator (mode 'toDecimal')"}, 'denominator': {'not': {'const': 0}, 'type': 'integer', 'description': "Denominator, not zero (mode 'toDecimal')"}}}
Ausgabeschema
{'type': 'object', 'required': ['decimal', 'denominator', 'exact', 'mode', 'numerator', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'exact': {'type': 'boolean'}, 'decimal': {'type': 'number'}, 'summary': {'type': 'string'}, 'numerator': {'type': 'number'}, 'recurring': {'type': 'boolean'}, 'percentage': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'denominator': {'type': 'number'}}, 'additionalProperties': True}
hopi_fuel_cost_calculator
Fuel cost calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['miles', 'mpg', 'pencePerLitre'], 'properties': {'mpg': {'type': 'number', 'description': 'Fuel economy in miles per UK gallon', 'exclusiveMinimum': 0}, 'miles': {'type': 'number', 'minimum': 0, 'description': 'One-way distance in miles'}, 'people': {'type': 'integer', 'default': 1, 'maximum': 1000, 'minimum': 1, 'description': 'Number of people to split the cost between (default 1)'}, 'returnTrip': {'type': 'boolean', 'default': False, 'description': 'Double the distance for a return journey (default false)'}, 'pencePerLitre': {'type': 'number', 'minimum': 0, 'description': 'Pump price in pence per litre'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'mpg': {'type': 'number'}, 'miles': {'type': 'number'}, 'litres': {'type': 'number'}, 'people': {'type': 'number'}, 'gallons': {'type': 'number'}, 'summary': {'type': 'string'}, 'totalCost': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'costPerPerson': {'type': 'number'}, 'pencePerLitre': {'type': 'number'}}, 'additionalProperties': True}
hopi_hash_generator
Hash generator
Compute the SHA-256, SHA-1 or SHA-512 hash of a piece of text and return the hex digest. Uses WebCrypto on Hopi's server. SHA-1 is included for compatibility with older systems only and should not be used for anything new. Source: https://hopi.co.uk/hash-generator/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to hash'}, 'algorithm': {'enum': ['SHA-256', 'SHA-1', 'SHA-512'], 'type': 'string', 'default': 'SHA-256', 'description': 'Hash algorithm (default SHA-256)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'hex': {'type': 'string'}, 'bits': {'type': 'number'}, 'summary': {'type': 'string'}, 'algorithm': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_hash_identifier
Hash identifier
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['hash'], 'properties': {'hash': {'type': 'string', 'minLength': 1, 'description': 'The hash string to identify'}}}
Ausgabeschema
{'type': 'object', 'required': ['candidates', 'charset', 'length', 'source_url', 'summary'], 'properties': {'length': {'type': 'number'}, 'charset': {'type': 'string'}, 'summary': {'type': 'string'}, 'candidates': {'type': 'array'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_heart_rate_zones
Heart rate zone calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'method': {'const': 'karvonen'}}}, 'then': {'required': ['restingHeartRate']}}], 'required': ['age'], 'properties': {'age': {'type': 'number', 'maximum': 120, 'description': 'Age in years', 'exclusiveMinimum': 0}, 'method': {'enum': ['max', 'karvonen'], 'type': 'string', 'default': 'max', 'description': "'max' (percentage of max HR) or 'karvonen' (heart rate reserve). Default 'max'"}, 'restingHeartRate': {'type': 'number', 'description': 'Resting heart rate in bpm, required for the Karvonen method', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['age', 'maxHeartRate', 'method', 'restingHeartRate', 'source_url', 'summary', 'zones'], 'properties': {'age': {'type': 'number'}, 'zones': {'type': 'array'}, 'method': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'maxHeartRate': {'type': 'number'}, 'restingHeartRate': {'type': ['number', 'null']}}, 'additionalProperties': True}
hopi_hex_to_rgb
Hex to RGB converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['hex'], 'properties': {'hex': {'type': 'string', 'pattern': '^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$', 'description': 'Hex colour code, e.g. #D7263D or F0C'}}}
Ausgabeschema
{'type': 'object', 'required': ['hsl', 'hslString', 'rgb', 'rgbString', 'source_url', 'summary'], 'properties': {'hsl': {'type': 'array'}, 'rgb': {'type': 'array'}, 'summary': {'type': 'string'}, 'hslString': {'type': 'string'}, 'rgbString': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_holiday_entitlement_calculator
Holiday entitlement calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['daysPerWeek'], 'properties': {'months': {'type': 'number', 'default': 12, 'maximum': 12, 'description': 'Months of the year worked (1 to 12, default 12)', 'exclusiveMinimum': 0}, 'daysPerWeek': {'type': 'number', 'maximum': 7, 'description': 'Days worked per week (1 to 7)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['cappedAt28', 'daysPerWeek', 'entitlementDays', 'entitlementWeeks', 'months', 'partYear', 'source_url', 'summary'], 'properties': {'months': {'type': 'number'}, 'summary': {'type': 'string'}, 'partYear': {'type': 'boolean'}, 'cappedAt28': {'type': 'boolean'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'daysPerWeek': {'type': 'number'}, 'entitlementDays': {'type': 'number'}, 'entitlementWeeks': {'type': 'number'}}, 'additionalProperties': True}
hopi_hourly_to_salary
Hourly wage to salary converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'to_salary'}}}, 'then': {'required': ['hourlyRate']}}, {'if': {'properties': {'mode': {'const': 'to_hourly'}}}, 'then': {'required': ['salary']}}], 'required': ['mode', 'hoursPerWeek'], 'properties': {'mode': {'enum': ['to_salary', 'to_hourly'], 'type': 'string', 'description': "'to_salary' from an hourly rate, or 'to_hourly' from a salary"}, 'salary': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': 'Annual salary in GBP (required for to_hourly)'}, 'hourlyRate': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Hourly pay rate in GBP (required for to_salary)'}, 'hoursPerWeek': {'type': 'number', 'maximum': 168, 'description': 'Hours worked per week (greater than 0, up to 168)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['hourlyRate', 'hoursPerWeek', 'mode', 'source_url', 'summary', 'weekly'], 'properties': {'mode': {'type': 'string'}, 'annual': {'type': 'number'}, 'weekly': {'type': 'number'}, 'monthly': {'type': 'number'}, 'summary': {'type': 'string'}, 'hourlyRate': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'hoursPerWeek': {'type': 'number'}}, 'additionalProperties': True}
hopi_hours_calculator
Hours calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'format': 'time', 'description': 'End time in 24-hour HH:MM format, e.g. 17:30'}, 'start': {'type': 'string', 'format': 'time', 'description': 'Start time in 24-hour HH:MM format, e.g. 09:00'}, 'breakMinutes': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Unpaid break in minutes (default 0)'}}}
Ausgabeschema
{'type': 'object', 'required': ['breakMinutes', 'decimalHours', 'end', 'grossMinutes', 'overnight', 'source_url', 'start', 'summary', 'worked', 'workedMinutes'], 'properties': {'end': {'type': 'string'}, 'start': {'type': 'string'}, 'worked': {'type': 'string'}, 'summary': {'type': 'string'}, 'overnight': {'type': 'boolean'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'breakMinutes': {'type': 'number'}, 'decimalHours': {'type': 'number'}, 'grossMinutes': {'type': 'number'}, 'workedMinutes': {'type': 'number'}}, 'additionalProperties': True}
hopi_hsl_converter
HSL converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'hex_to_hsl'}}}, 'then': {'required': ['hex']}}, {'if': {'properties': {'mode': {'const': 'hsl_to_hex'}}}, 'then': {'required': ['h', 's', 'l']}}], 'required': ['mode'], 'properties': {'h': {'type': 'number', 'maximum': 360, 'minimum': 0, 'description': 'Hue 0 to 360 (for hsl_to_hex)'}, 'l': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Lightness 0 to 100 (for hsl_to_hex)'}, 's': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Saturation 0 to 100 (for hsl_to_hex)'}, 'hex': {'type': 'string', 'pattern': '^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$', 'description': 'Hex colour code, e.g. #1FE85C (for hex_to_hsl)'}, 'mode': {'enum': ['hex_to_hsl', 'hsl_to_hex'], 'type': 'string', 'description': 'Direction of conversion'}}}
Ausgabeschema
{'type': 'object', 'required': ['hex', 'hslString', 'mode', 'rgbString', 'source_url', 'summary'], 'properties': {'hex': {'type': 'string'}, 'hsl': {'type': 'array'}, 'mode': {'type': 'string'}, 'summary': {'type': 'string'}, 'hslString': {'type': 'string'}, 'rgbString': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_html_escape
HTML escape & unescape
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text', 'mode'], 'properties': {'mode': {'enum': ['escape', 'unescape'], 'type': 'string', 'description': "'escape' text to entities, or 'unescape' entities back to text"}, 'text': {'type': 'string', 'description': 'The text to escape, or the HTML with entities to unescape'}}}
Ausgabeschema
{'type': 'object', 'required': ['input', 'mode', 'output', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'input': {'type': 'string'}, 'output': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_http_status_codes
HTTP status code reference
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'anyOf': [{'required': ['code']}, {'required': ['query']}], 'required': [], 'properties': {'code': {'type': 'integer', 'maximum': 599, 'minimum': 100, 'description': 'An HTTP status code to look up, for example 404'}, 'query': {'type': 'string', 'description': 'A word to search for across code numbers, names and descriptions'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'code': {'type': 'number'}, 'name': {'type': 'string'}, 'class': {'type': 'string'}, 'summary': {'type': 'string'}, 'className': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'description': {'type': 'string'}}, 'additionalProperties': True}
hopi_iban_validator
IBAN validator
Validate an IBAN or generate a test IBAN. Pass 'iban' to check it: the tool normalises it (uppercase, no spaces), confirms the length matches the country's published length, and runs the mod-97 checksum (move the first four characters to the end, map letters to numbers A=10 to Z=35, valid when the number mod 97 is 1). Pass 'country' (a two-letter ISO code) to generate a structurally valid TEST IBAN with a random bank and account portion and correct check digits. Generated IBANs are test values only and are not tied to any real account. All processing is local; nothing is stored. Source: https://hopi.co.uk/iban-validator/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'iban': {'type': 'string', 'description': 'An IBAN to validate (spaces and case are ignored)'}, 'country': {'type': 'string', 'description': 'A two-letter country code (e.g. GB, DE, FR) to generate a test IBAN for instead of validating'}}}
Ausgabeschema
{'type': 'object', 'required': ['country', 'length', 'mode', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'valid': {'type': 'boolean'}, 'length': {'type': 'number'}, 'reason': {'type': 'string'}, 'country': {'type': 'string'}, 'summary': {'type': 'string'}, 'normalised': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'country_code': {'type': 'string'}, 'checksum_passes': {'type': 'boolean'}, 'expected_length': {'type': 'number'}}, 'additionalProperties': True}
hopi_ics_generator
Add to calendar file generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['title', 'startDate'], 'properties': {'title': {'type': 'string', 'minLength': 1, 'description': 'Event title (SUMMARY)'}, 'allDay': {'type': 'boolean', 'default': False, 'description': 'True for an all-day event (no times). Default false'}, 'endDate': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "End date, ISO 'YYYY-MM-DD'. Defaults to startDate"}, 'endTime': {'type': 'string', 'description': "End time 'HH:MM' 24-hour, timed events only. Defaults to startTime"}, 'location': {'type': 'string', 'description': 'Optional location'}, 'startDate': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "Start date, ISO 'YYYY-MM-DD'"}, 'startTime': {'type': 'string', 'default': '00:00', 'description': "Start time 'HH:MM' 24-hour, timed events only. Default '00:00'"}, 'description': {'type': 'string', 'description': 'Optional description'}}}
Ausgabeschema
{'type': 'object', 'required': ['allDay', 'bytes', 'filename', 'ics', 'source_url', 'summary', 'title'], 'properties': {'ics': {'type': 'string'}, 'bytes': {'type': 'number'}, 'title': {'type': 'string'}, 'allDay': {'type': 'boolean'}, 'summary': {'type': 'string'}, 'filename': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_inflation_calculator
UK inflation calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'cpi'}}}, 'then': {'required': ['fromMonth', 'fromYear']}}, {'if': {'properties': {'mode': {'const': 'custom'}}}, 'then': {'required': ['ratePercent', 'years']}}], 'required': ['mode', 'amount'], 'properties': {'mode': {'enum': ['cpi', 'custom'], 'type': 'string', 'description': "'cpi' uses the ONS CPI index between two months; 'custom' uses your own rate"}, 'years': {'type': 'number', 'maximum': 200, 'minimum': 0, 'description': 'Custom mode: number of years (0 to 200)'}, 'amount': {'type': 'number', 'minimum': 0, 'description': 'The money amount to adjust'}, 'toYear': {'type': 'integer', 'default': 2026, 'maximum': 2026, 'minimum': 1988, 'description': 'CPI mode: ending year (default is the latest year)'}, 'toMonth': {'type': 'integer', 'default': 8, 'maximum': 12, 'minimum': 1, 'description': 'CPI mode: ending month (1 to 12, default is the latest month)'}, 'fromYear': {'type': 'integer', 'maximum': 2026, 'minimum': 1988, 'description': 'CPI mode: starting year (1988 to 2026)'}, 'fromMonth': {'type': 'integer', 'maximum': 12, 'minimum': 1, 'description': 'CPI mode: starting month (1 to 12)'}, 'ratePercent': {'type': 'number', 'maximum': 100, 'minimum': -50, 'description': 'Custom mode: annual inflation rate as a percentage (-50 to 100)'}}}
Ausgabeschema
{'type': 'object', 'required': ['adjustedValue', 'amount', 'mode', 'source_url', 'summary', 'totalChangePercent'], 'properties': {'mode': {'type': 'string'}, 'years': {'type': 'number'}, 'amount': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'ratePercent': {'type': 'number'}, 'adjustedValue': {'type': 'number'}, 'totalChangePercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_json_formatter
JSON formatter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['json'], 'properties': {'json': {'type': 'string', 'minLength': 1, 'description': 'The JSON text to process'}, 'mode': {'enum': ['format', 'minify', 'validate'], 'type': 'string', 'default': 'format', 'description': "'format' to pretty print, 'minify' to strip whitespace, 'validate' to only check validity (default format)"}, 'indent': {'type': 'integer', 'default': 2, 'minimum': 0, 'description': 'Number of spaces per indent level when formatting (default 2)'}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'output', 'source_url', 'summary', 'valid'], 'properties': {'mode': {'type': 'string'}, 'valid': {'type': 'boolean'}, 'output': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_json_to_csv
JSON to CSV converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['json'], 'properties': {'json': {'type': 'string', 'minLength': 1, 'description': 'A JSON array of objects to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'csv': {'type': 'string'}, 'rows': {'type': 'number'}, 'columns': {'type': 'number'}, 'headers': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_json_to_typescript
JSON to TypeScript converter
Convert a JSON sample into TypeScript interfaces and types. Objects become named interfaces (PascalCase from their key), nested objects get their own interfaces, arrays become element-type arrays with keys merged across all elements (keys missing from some elements are marked optional), and null values are folded into unions such as string | null. Empty arrays become unknown[] and empty objects become Record<string, unknown>. Runs on Hopi's server; nothing is stored. Source: https://hopi.co.uk/json-to-typescript/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['json'], 'properties': {'json': {'type': 'string', 'description': 'A JSON sample to convert. It may be an object, an array or a primitive value.'}, 'rootName': {'type': 'string', 'default': 'Root', 'description': 'Name for the root interface or type alias (default Root).'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary', 'typescript'], 'properties': {'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'typescript': {'type': 'string'}}, 'additionalProperties': True}
hopi_json_yaml_converter
JSON to YAML converter
Convert data between JSON and YAML in both directions. JSON to YAML parses with JSON.parse and serialises with js-yaml at two-space indent; YAML to JSON parses with js-yaml and prints with JSON.stringify. Runs on Hopi's server; nothing is stored. Source: https://hopi.co.uk/json-yaml-converter/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'mode': {'enum': ['json-to-yaml', 'yaml-to-json'], 'type': 'string', 'default': 'json-to-yaml', 'description': 'Direction of conversion (default json-to-yaml)'}, 'text': {'type': 'string', 'description': 'The JSON or YAML text to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'output': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_jwt_decoder
JWT decoder
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['token'], 'properties': {'token': {'type': 'string', 'minLength': 1, 'description': "The JWT to decode, optionally with a leading 'Bearer ' prefix"}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'exp': {'type': ['number', 'null']}, 'iat': {'type': 'object'}, 'nbf': {'type': ['number', 'null']}, 'type': {'type': 'string'}, 'header': {'type': 'object'}, 'status': {'type': 'string'}, 'payload': {'type': 'object'}, 'summary': {'type': 'string'}, 'algorithm': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'statusNote': {'type': 'string'}}, 'additionalProperties': True}
hopi_kg_to_stone
Kg to stone converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['kilograms'], 'properties': {'kilograms': {'type': 'number', 'minimum': 0, 'description': 'Weight in kilograms'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'stone': {'type': 'number'}, 'pounds': {'type': 'number'}, 'summary': {'type': 'string'}, 'kilograms': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'totalStone': {'type': 'number'}, 'totalPounds': {'type': 'number'}}, 'additionalProperties': True}
hopi_leap_year_checker
Leap year checker
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['year'], 'properties': {'year': {'type': 'integer', 'maximum': 9999, 'minimum': 1, 'description': 'The year to check (1 to 9999)'}}}
Ausgabeschema
{'type': 'object', 'required': ['divisibleBy100', 'divisibleBy4', 'divisibleBy400', 'isLeapYear', 'nextLeapYear', 'previousLeapYear', 'source_url', 'summary', 'year'], 'properties': {'year': {'type': 'number'}, 'summary': {'type': 'string'}, 'isLeapYear': {'type': 'boolean'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'divisibleBy4': {'type': 'boolean'}, 'nextLeapYear': {'type': 'number'}, 'divisibleBy100': {'type': 'boolean'}, 'divisibleBy400': {'type': 'boolean'}, 'previousLeapYear': {'type': 'number'}}, 'additionalProperties': True}
hopi_length_converter
Length converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'from', 'to'], 'properties': {'to': {'enum': ['mm', 'cm', 'm', 'km', 'in', 'ft', 'yd', 'mi'], 'type': 'string', 'description': 'Unit to convert to'}, 'from': {'enum': ['mm', 'cm', 'm', 'km', 'in', 'ft', 'yd', 'mi'], 'type': 'string', 'description': 'Unit to convert from'}, 'value': {'type': 'number', 'minimum': 0, 'description': 'The length value to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['from', 'result', 'source_url', 'summary', 'to', 'value'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_litres_to_pints
Litres to pints converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'direction'], 'properties': {'value': {'type': 'number', 'minimum': 0, 'description': 'The value to convert (litres or UK pints depending on direction)'}, 'direction': {'enum': ['litres-to-pints', 'pints-to-litres'], 'type': 'string', 'description': 'Which way to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['direction', 'litres', 'source_url', 'summary', 'ukPints'], 'properties': {'litres': {'type': 'number'}, 'summary': {'type': 'string'}, 'ukPints': {'type': 'number'}, 'usPints': {'type': 'number'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'millilitres': {'type': 'number'}}, 'additionalProperties': True}
hopi_loan_calculator
Loan repayment calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['amount', 'rate', 'years'], 'properties': {'rate': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Annual interest rate (APR) as a percentage (0 to 100)'}, 'years': {'type': 'number', 'maximum': 30, 'description': 'Loan term in years (greater than 0, up to 30)', 'exclusiveMinimum': 0}, 'amount': {'type': 'number', 'description': 'Amount borrowed in GBP (greater than zero)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['amount', 'monthlyPayment', 'months', 'rate', 'source_url', 'summary', 'totalInterest', 'totalRepaid', 'years'], 'properties': {'rate': {'type': 'number'}, 'years': {'type': 'number'}, 'amount': {'type': 'number'}, 'months': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'totalRepaid': {'type': 'number'}, 'totalInterest': {'type': 'number'}, 'monthlyPayment': {'type': 'number'}}, 'additionalProperties': True}
hopi_lorem_ipsum_generator
Lorem ipsum generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'paragraphs'}}}, 'then': {'properties': {'count': {'maximum': 100}}}}, {'if': {'properties': {'mode': {'const': 'sentences'}}}, 'then': {'properties': {'count': {'maximum': 500}}}}, {'if': {'properties': {'mode': {'const': 'words'}}}, 'then': {'properties': {'count': {'maximum': 2000}}}}], 'required': ['count'], 'properties': {'mode': {'enum': ['paragraphs', 'sentences', 'words'], 'type': 'string', 'default': 'paragraphs', 'description': 'What the count refers to (default paragraphs)'}, 'count': {'type': 'integer', 'minimum': 1, 'description': 'How many paragraphs, sentences or words to produce'}}}
Ausgabeschema
{'type': 'object', 'required': ['count', 'mode', 'result', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'count': {'type': 'number'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_lottery_number_generator
Lottery number generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'game': {'enum': ['lotto', 'thunderball', 'setforlife'], 'type': 'string', 'default': 'lotto', 'description': 'Which game to play (default lotto)'}, 'lines': {'type': 'integer', 'default': 1, 'maximum': 10, 'minimum': 1, 'description': 'How many lines to generate, 1 to 10 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['game', 'lines', 'source_url', 'summary'], 'properties': {'game': {'type': 'string'}, 'lines': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_magic_8_ball
Magic 8 ball
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'question': {'type': 'string', 'description': 'The yes or no question to ask (optional)'}}}
Ausgabeschema
{'type': 'object', 'required': ['answer', 'question', 'source_url', 'summary'], 'properties': {'answer': {'type': 'string'}, 'summary': {'type': 'string'}, 'question': {'type': ['string', 'null']}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_margin_calculator
Margin & markup calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['cost', 'price'], 'properties': {'cost': {'type': 'number', 'maximum': 1000000000, 'minimum': 0, 'description': 'Cost price in GBP'}, 'price': {'type': 'number', 'maximum': 1000000000, 'minimum': 0, 'description': 'Selling price in GBP'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'cost': {'type': 'number'}, 'price': {'type': 'number'}, 'profit': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'marginPercent': {'type': 'number'}, 'markupPercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_markdown_previewer
Markdown previewer
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['markdown'], 'properties': {'markdown': {'type': 'string', 'description': 'The markdown source to render'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'html': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_market_cap_calculator
Market cap calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'market_cap'}}}, 'then': {'required': ['price']}}, {'if': {'properties': {'mode': {'const': 'implied_price'}}}, 'then': {'required': ['target']}}], 'required': ['mode', 'supply'], 'properties': {'mode': {'enum': ['market_cap', 'implied_price'], 'type': 'string', 'description': 'market_cap: price times supply. implied_price: target cap divided by supply.'}, 'price': {'type': 'number', 'minimum': 0, 'description': 'Current price per coin (for market_cap)'}, 'supply': {'type': 'number', 'description': 'Circulating supply (for both modes)', 'exclusiveMinimum': 0}, 'target': {'type': 'number', 'minimum': 0, 'description': 'Target market cap (for implied_price)'}, 'current': {'type': 'number', 'minimum': 0, 'description': 'Current price per coin, to show the multiple (optional, implied_price mode)'}, 'maxSupply': {'type': 'number', 'minimum': 0, 'description': 'Maximum or total supply for FDV (optional, market_cap mode)'}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'approx': {'type': 'string'}, 'summary': {'type': 'string'}, 'marketCap': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'marketCapString': {'type': 'string'}}, 'additionalProperties': True}
hopi_meta_tag_generator
Meta tag generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'title': {'type': 'string', 'description': 'Page title (guideline is around 60 characters)'}, 'ogType': {'enum': ['website', 'article', 'product', 'profile'], 'type': 'string', 'default': 'website', 'description': "Open Graph type (default 'website')"}, 'ogImage': {'type': 'string', 'format': 'uri', 'description': 'Open Graph image URL'}, 'ogTitle': {'type': 'string', 'description': 'Open Graph title (defaults to title if omitted)'}, 'canonical': {'type': 'string', 'format': 'uri', 'description': 'Canonical URL for the page'}, 'description': {'type': 'string', 'description': 'Meta description (guideline is around 155 characters)'}, 'twitterCard': {'enum': ['summary', 'summary_large_image', 'app', 'player'], 'type': 'string', 'default': 'summary_large_image', 'description': "Twitter card type (default 'summary_large_image')"}, 'ogDescription': {'type': 'string', 'description': 'Open Graph description (defaults to description if omitted)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'html': {'type': 'string'}, 'lines': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'titleLength': {'type': 'number'}, 'descriptionLength': {'type': 'number'}, 'titleOverGuideline': {'type': 'boolean'}, 'descriptionOverGuideline': {'type': 'boolean'}}, 'additionalProperties': True}
hopi_miles_to_km
Miles to km converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'direction'], 'properties': {'value': {'type': 'number', 'minimum': 0, 'description': 'The distance value to convert'}, 'direction': {'enum': ['miles-to-km', 'km-to-miles'], 'type': 'string', 'description': 'Which way to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['direction', 'km', 'miles', 'source_url', 'summary'], 'properties': {'km': {'type': 'number'}, 'miles': {'type': 'number'}, 'summary': {'type': 'string'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_military_time_converter
Military time converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['time', 'direction'], 'properties': {'time': {'type': 'string', 'minLength': 1, 'description': "The time to convert, e.g. '1430', '14:30', '2:30 pm'"}, 'meridiem': {'enum': ['am', 'pm'], 'type': 'string', 'default': 'pm', 'description': 'am or pm for 12h-to-24h when not in the time string (default pm)'}, 'direction': {'enum': ['24h-to-12h', '12h-to-24h'], 'type': 'string', 'description': 'Which way to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['direction', 'meridiem', 'source_url', 'summary', 'time12', 'time24'], 'properties': {'time12': {'type': 'string'}, 'time24': {'type': 'string'}, 'summary': {'type': 'string'}, 'meridiem': {'type': 'string'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_minutes_to_hours
Minutes to hours converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'minutesToHours'}}}, 'then': {'required': ['minutes']}}], 'required': ['mode'], 'properties': {'mode': {'enum': ['minutesToHours', 'hoursToMinutes'], 'type': 'string', 'description': 'Direction of the conversion'}, 'hours': {'type': 'number', 'default': 0, 'maximum': 100000, 'minimum': 0, 'description': "Hours to convert (used when mode is 'hoursToMinutes', 0 to 100000)"}, 'minutes': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': "Minutes to convert (used when mode is 'minutesToHours', 0 to 10000000)"}, 'extraMinutes': {'type': 'number', 'default': 0, 'maximum': 10000000, 'minimum': 0, 'description': "Extra minutes to add to the hours (used when mode is 'hoursToMinutes', default 0)"}}}
Ausgabeschema
{'type': 'object', 'required': ['clock', 'decimalHours', 'mode', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'clock': {'type': 'string'}, 'minutes': {'type': 'number'}, 'summary': {'type': 'string'}, 'breakdown': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'decimalHours': {'type': 'number'}}, 'additionalProperties': True}
hopi_moon_phase_calculator
Moon phase calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'date': {'type': 'string', 'format': 'date', 'description': 'Optional date in YYYY-MM-DD format (defaults to today)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'date': {'type': 'string'}, 'phase': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'moonAgeDays': {'type': 'number'}, 'nextNewMoon': {'type': 'string'}, 'nextFullMoon': {'type': 'string'}, 'illuminationPercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_morse_code_translator
Morse code translator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text or Morse code to translate'}, 'direction': {'enum': ['t2m', 'm2t'], 'type': 'string', 'default': 't2m', 'description': "'t2m' text to Morse (default), 'm2t' Morse to text"}}}
Ausgabeschema
{'type': 'object', 'required': ['direction', 'result', 'source_url', 'summary', 'unknown'], 'properties': {'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'unknown': {'type': 'array'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_mortgage_calculator
Mortgage repayment calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['amount', 'rate', 'years'], 'properties': {'rate': {'type': 'number', 'maximum': 50, 'minimum': 0, 'description': 'Annual interest rate as a percentage (0 to 50)'}, 'years': {'type': 'number', 'maximum': 50, 'description': 'Mortgage term in years (greater than 0, up to 50)', 'exclusiveMinimum': 0}, 'amount': {'type': 'number', 'description': 'Amount borrowed in GBP (greater than zero)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'rate': {'type': 'number'}, 'years': {'type': 'number'}, 'amount': {'type': 'number'}, 'months': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'totalRepaid': {'type': 'number'}, 'totalInterest': {'type': 'number'}, 'monthlyPayment': {'type': 'number'}}, 'additionalProperties': True}
hopi_mortgage_overpayment_calculator
Mortgage overpayment calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['balance', 'rate', 'years', 'extra'], 'properties': {'rate': {'type': 'number', 'maximum': 50, 'minimum': 0, 'description': 'Annual interest rate as a percentage (0 to 50)'}, 'extra': {'type': 'number', 'minimum': 0, 'description': 'Extra monthly overpayment in GBP (0 or more)'}, 'years': {'type': 'number', 'maximum': 50, 'description': 'Remaining term in years (greater than 0, up to 50)', 'exclusiveMinimum': 0}, 'balance': {'type': 'number', 'description': 'Current mortgage balance in GBP (greater than zero)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'rate': {'type': 'number'}, 'extra': {'type': 'number'}, 'years': {'type': 'number'}, 'balance': {'type': 'number'}, 'summary': {'type': 'string'}, 'timeSaved': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'monthsSaved': {'type': 'number'}, 'interestSaved': {'type': 'number'}, 'monthlyPayment': {'type': 'number'}, 'newPayoffMonths': {'type': 'number'}, 'overpaymentPayment': {'type': 'number'}}, 'additionalProperties': True}
hopi_mpg_converter
MPG converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'direction'], 'properties': {'value': {'type': 'number', 'description': 'The fuel economy value (UK mpg or L/100km depending on direction)', 'exclusiveMinimum': 0}, 'direction': {'enum': ['mpg-to-l100', 'l100-to-mpg'], 'type': 'string', 'description': 'Which way to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['direction', 'kmPerLitre', 'litresPer100km', 'milesPerLitre', 'source_url', 'summary', 'ukMpg', 'usMpg'], 'properties': {'ukMpg': {'type': 'number'}, 'usMpg': {'type': 'number'}, 'summary': {'type': 'string'}, 'direction': {'type': 'string'}, 'kmPerLitre': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'milesPerLitre': {'type': 'number'}, 'litresPer100km': {'type': 'number'}}, 'additionalProperties': True}
hopi_national_insurance_calculator
National Insurance calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['salary'], 'properties': {'salary': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': 'Annual gross salary in GBP'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'salary': {'type': 'number'}, 'summary': {'type': 'string'}, 'niPerWeek': {'type': 'number'}, 'niPerYear': {'type': 'number'}, 'niPerMonth': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'effectiveRatePercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_nato_phonetic_alphabet
NATO phonetic alphabet translator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text or phonetic spelling to convert'}, 'direction': {'enum': ['t2n', 'n2t'], 'type': 'string', 'default': 't2n', 'description': "'t2n' text to phonetic (default), 'n2t' phonetic to text"}}}
Ausgabeschema
{'type': 'object', 'required': ['direction', 'result', 'source_url', 'summary', 'unknown'], 'properties': {'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'unknown': {'type': 'array'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_net_to_gross
Net to gross salary calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['net'], 'properties': {'net': {'type': 'number', 'minimum': 0, 'description': 'Desired take-home pay in GBP'}, 'period': {'enum': ['year', 'month'], 'type': 'string', 'default': 'year', 'description': 'Whether the net figure is yearly or monthly (default year)'}}}
Ausgabeschema
{'type': 'object', 'required': ['grossPerMonth', 'grossPerYear', 'incomeTax', 'nationalInsurance', 'net', 'netCheckPerYear', 'period', 'source_url', 'summary'], 'properties': {'net': {'type': 'number'}, 'period': {'type': 'string'}, 'summary': {'type': 'string'}, 'incomeTax': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'grossPerYear': {'type': 'number'}, 'grossPerMonth': {'type': 'number'}, 'netCheckPerYear': {'type': 'number'}, 'nationalInsurance': {'type': 'number'}}, 'additionalProperties': True}
hopi_number_base_converter
Number base converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'fromBase', 'toBase'], 'properties': {'value': {'type': 'string', 'description': 'The number to convert, as text (optional 0b/0o/0x prefix, spaces and underscores ignored, may be negative)'}, 'toBase': {'enum': ['binary', 'octal', 'decimal', 'hex'], 'type': 'string', 'description': 'The base to convert to'}, 'fromBase': {'enum': ['binary', 'octal', 'decimal', 'hex'], 'type': 'string', 'description': 'The base the value is written in'}}}
Ausgabeschema
{'type': 'object', 'required': ['binary', 'decimal', 'fromBase', 'hex', 'octal', 'result', 'source_url', 'summary', 'toBase', 'value'], 'properties': {'hex': {'type': 'string'}, 'octal': {'type': 'string'}, 'value': {'type': 'string'}, 'binary': {'type': 'string'}, 'result': {'type': 'string'}, 'toBase': {'type': 'string'}, 'decimal': {'type': 'string'}, 'summary': {'type': 'string'}, 'fromBase': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_number_to_words
Number to words converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value'], 'properties': {'value': {'type': 'string', 'minLength': 1, 'description': "The number to spell out, e.g. '1234.5' or '19.99'. May include commas."}, 'currency': {'type': 'boolean', 'default': False, 'description': 'Write as UK pounds and pence (default false)'}}}
Ausgabeschema
{'type': 'object', 'required': ['currency', 'source_url', 'summary', 'words'], 'properties': {'words': {'type': 'string'}, 'summary': {'type': 'string'}, 'currency': {'type': 'boolean'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_oven_temperature_converter
Oven temperature converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'scale': {'const': 'gas'}}}, 'then': {'properties': {'value': {'type': 'integer', 'maximum': 9, 'minimum': 1}}}}], 'required': ['value', 'scale'], 'properties': {'scale': {'enum': ['c', 'fan', 'f', 'gas'], 'type': 'string', 'description': 'The scale of the input value'}, 'value': {'type': 'number', 'description': "The temperature value (or gas mark 1 to 9 when scale is 'gas')"}}}
Ausgabeschema
{'type': 'object', 'required': ['celsius', 'fahrenheit', 'fanCelsius', 'gasMark', 'scale', 'source_url', 'summary'], 'properties': {'scale': {'type': 'string'}, 'celsius': {'type': 'number'}, 'gasMark': {'type': 'string'}, 'summary': {'type': 'string'}, 'fahrenheit': {'type': 'number'}, 'fanCelsius': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_overtime_pay_calculator
Overtime pay calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['rate'], 'properties': {'rate': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Base hourly rate in GBP'}, 'doubleHours': {'type': 'number', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Hours paid at double time, 2x (default 0)'}, 'standardHours': {'type': 'number', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Hours paid at the standard rate (default 0)'}, 'timeAndHalfHours': {'type': 'number', 'default': 0, 'maximum': 10000, 'minimum': 0, 'description': 'Hours paid at time and a half, 1.5x (default 0)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'rate': {'type': 'number'}, 'summary': {'type': 'string'}, 'totalPay': {'type': 'number'}, 'doublePay': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'totalHours': {'type': 'number'}, 'doubleHours': {'type': 'number'}, 'standardPay': {'type': 'number'}, 'standardHours': {'type': 'number'}, 'timeAndHalfPay': {'type': 'number'}, 'timeAndHalfHours': {'type': 'number'}}, 'additionalProperties': True}
hopi_password_strength_checker
Password strength checker
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['password'], 'properties': {'password': {'type': 'string', 'minLength': 1, 'description': 'The password to assess (never uploaded; assessed locally)'}}}
Ausgabeschema
{'type': 'object', 'required': ['bits', 'crackTime', 'label', 'score', 'source_url', 'summary', 'tips', 'verdict'], 'properties': {'bits': {'type': 'number'}, 'tips': {'type': 'array'}, 'label': {'type': 'string'}, 'score': {'type': 'number'}, 'summary': {'type': 'string'}, 'verdict': {'type': 'string'}, 'crackTime': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_percentage_calculator
Percentage calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'of'}}}, 'then': {'required': ['percent', 'number']}}, {'if': {'properties': {'mode': {'const': 'what'}}}, 'then': {'required': ['part', 'whole']}}, {'if': {'properties': {'mode': {'const': 'change'}}}, 'then': {'required': ['from', 'to']}}], 'required': ['mode'], 'properties': {'to': {'type': 'number', 'description': "End value (mode 'change')"}, 'from': {'not': {'const': 0}, 'type': 'number', 'description': "Starting value (mode 'change', not zero)"}, 'mode': {'enum': ['of', 'what', 'change'], 'type': 'string', 'description': "'of' percent of a number, 'what' one number as a percentage of another, or 'change' percentage change"}, 'part': {'type': 'number', 'description': "The part (mode 'what')"}, 'whole': {'not': {'const': 0}, 'type': 'number', 'description': "The whole (mode 'what', not zero)"}, 'number': {'type': 'number', 'description': "The number (mode 'of')"}, 'percent': {'type': 'number', 'description': "The percentage (mode 'of')"}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'result', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'number': {'type': 'number'}, 'result': {'type': 'number'}, 'percent': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_percentage_change_calculator
Percentage change calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['from', 'to'], 'properties': {'to': {'type': 'number', 'description': 'The end value'}, 'from': {'not': {'const': 0}, 'type': 'number', 'description': 'The starting value (not zero)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'to': {'type': 'number'}, 'from': {'type': 'number'}, 'change': {'type': 'number'}, 'summary': {'type': 'string'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'absoluteChange': {'type': 'number'}}, 'additionalProperties': True}
hopi_percentage_decrease_calculator
Percentage decrease calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['number', 'percent'], 'properties': {'number': {'type': 'number', 'description': 'The starting number'}, 'percent': {'type': 'number', 'description': 'The percentage to take off'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'number': {'type': 'number'}, 'result': {'type': 'number'}, 'percent': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'amountTakenOff': {'type': 'number'}}, 'additionalProperties': True}
hopi_percentage_difference_calculator
Percentage difference calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['a', 'b'], 'properties': {'a': {'type': 'number', 'description': 'The first value'}, 'b': {'type': 'number', 'description': 'The second value'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'a': {'type': 'number'}, 'b': {'type': 'number'}, 'gap': {'type': 'number'}, 'average': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'percentageDifference': {'type': 'number'}}, 'additionalProperties': True}
hopi_percentage_increase_calculator
Percentage increase calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['number', 'percent'], 'properties': {'number': {'type': 'number', 'description': 'The starting number'}, 'percent': {'type': 'number', 'description': 'The percentage to add on'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'number': {'type': 'number'}, 'result': {'type': 'number'}, 'percent': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'amountAdded': {'type': 'number'}}, 'additionalProperties': True}
hopi_position_size_calculator
Position size calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['account', 'risk', 'entry', 'stop'], 'properties': {'risk': {'type': 'number', 'maximum': 100, 'description': 'Percentage of the account to risk on this trade (above 0, up to 100)', 'exclusiveMinimum': 0}, 'stop': {'type': 'number', 'minimum': 0, 'description': 'Stop-loss price per unit'}, 'entry': {'type': 'number', 'description': 'Entry price per unit', 'exclusiveMinimum': 0}, 'account': {'type': 'number', 'description': 'Total account size', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'note': {'type': 'string'}, 'units': {'type': 'number'}, 'summary': {'type': 'string'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'unitsString': {'type': 'string'}, 'amountAtRisk': {'type': 'number'}, 'positionValue': {'type': 'number'}, 'amountAtRiskString': {'type': 'string'}, 'positionValueString': {'type': 'string'}, 'stopDistancePercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_power_converter
Power converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'from', 'to'], 'properties': {'to': {'enum': ['w', 'kw', 'hp', 'ps'], 'type': 'string', 'description': 'Unit to convert to'}, 'from': {'enum': ['w', 'kw', 'hp', 'ps'], 'type': 'string', 'description': 'Unit to convert from'}, 'value': {'type': 'number', 'minimum': 0, 'description': 'The power value to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_pressure_converter
Pressure converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'from', 'to'], 'properties': {'to': {'enum': ['bar', 'psi', 'kpa', 'atm'], 'type': 'string', 'description': 'Unit to convert to'}, 'from': {'enum': ['bar', 'psi', 'kpa', 'atm'], 'type': 'string', 'description': 'Unit to convert from'}, 'value': {'type': 'number', 'minimum': 0, 'description': 'The pressure value to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_prime_factorisation_calculator
Prime number & factor calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['number'], 'properties': {'number': {'type': 'integer', 'maximum': 1000000000000000, 'minimum': 2, 'description': 'A whole number from 2 to 1,000,000,000,000,000'}}}
Ausgabeschema
{'type': 'object', 'required': ['divisorCount', 'divisors', 'factorisation', 'isPrime', 'number', 'primeFactors', 'source_url', 'summary'], 'properties': {'number': {'type': 'number'}, 'isPrime': {'type': 'boolean'}, 'summary': {'type': 'string'}, 'divisors': {'type': 'array'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'divisorCount': {'type': 'number'}, 'primeFactors': {'type': 'array'}, 'factorisation': {'type': 'string'}}, 'additionalProperties': True}
hopi_product_feed_generator
Product feed generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['rows'], 'properties': {'link': {'type': 'string', 'description': 'Shop URL for the feed header (optional, must start with http:// or https://).'}, 'rows': {'type': 'array', 'items': {'type': 'object'}, 'maxItems': 5000, 'minItems': 1, 'description': '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': {'type': 'string', 'description': 'Feed title. Default Product feed.'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency code for prices, for example GBP. Default GBP.'}, 'platform': {'enum': ['meta', 'google', 'atom', 'rss'], 'type': 'string', 'description': 'Feed format. Default meta.'}, 'description': {'type': 'string', 'description': 'Feed description (optional).'}}}
Ausgabeschema
{'type': 'object', 'required': ['currency', 'errors', 'items', 'platform', 'rowsRead', 'skipped', 'source_url', 'summary', 'xml'], 'properties': {'xml': {'type': 'string'}, 'items': {'type': 'number'}, 'errors': {'type': 'array'}, 'skipped': {'type': 'number'}, 'summary': {'type': 'string'}, 'currency': {'type': 'string'}, 'platform': {'type': 'string'}, 'rowsRead': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_pro_rata_salary_calculator
Pro-rata salary calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['fullTimeSalary', 'fullTimeHours', 'hours'], 'properties': {'hours': {'type': 'number', 'description': 'Your hours per week (greater than zero)', 'exclusiveMinimum': 0}, 'fullTimeHours': {'type': 'number', 'description': 'Full-time hours per week (greater than zero)', 'exclusiveMinimum': 0}, 'fullTimeSalary': {'type': 'number', 'description': 'Full-time annual salary in GBP (greater than zero)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'hours': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'proRataWeek': {'type': 'number'}, 'proRataYear': {'type': 'number'}, 'proRataMonth': {'type': 'number'}, 'fullTimeHours': {'type': 'number'}, 'fullTimeSalary': {'type': 'number'}, 'fractionPercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_random_colour_generator
Random colour generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'hex': {'type': 'string'}, 'hsl': {'type': 'array'}, 'rgb': {'type': 'array'}, 'summary': {'type': 'string'}, 'hslString': {'type': 'string'}, 'rgbString': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_random_coordinates
Random coordinates generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'decimals': {'type': 'integer', 'default': 4, 'maximum': 6, 'minimum': 2, 'description': 'Decimal places for each coordinate, 2 to 6 (default 4)'}, 'quantity': {'type': 'integer', 'default': 1, 'maximum': 100, 'minimum': 1, 'description': 'How many points to generate, 1 to 100 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['points', 'source_url', 'summary'], 'properties': {'points': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_random_letter_generator
Random letter generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'set': {'enum': ['any', 'vowels', 'consonants'], 'type': 'string', 'default': 'any', 'description': 'Which letters to draw from (default any)'}, 'quantity': {'type': 'integer', 'default': 1, 'maximum': 100, 'minimum': 1, 'description': 'How many letters to generate, 1 to 100 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['letters', 'set', 'source_url', 'summary'], 'properties': {'set': {'type': 'string'}, 'letters': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_random_number_generator
Random number generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['min', 'max'], 'properties': {'max': {'type': 'integer', 'description': 'Highest possible number (inclusive)'}, 'min': {'type': 'integer', 'description': 'Lowest possible number (inclusive)'}, 'unique': {'type': 'boolean', 'default': False, 'description': 'If true, no number repeats (default false)'}, 'quantity': {'type': 'integer', 'default': 1, 'maximum': 1000, 'minimum': 1, 'description': 'How many numbers to generate, 1 to 1000 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['max', 'min', 'numbers', 'source_url', 'summary', 'unique'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'unique': {'type': 'boolean'}, 'numbers': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_random_team_generator
Random team generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['names', 'teams'], 'properties': {'names': {'type': 'array', 'minItems': 1, 'description': 'The list of names to split into teams'}, 'teams': {'type': 'integer', 'maximum': 20, 'minimum': 2, 'description': 'How many teams to make, 2 to 20'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'teams': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_random_word_generator
Random word generator
Generate random everyday English nouns, with no repeats. Returns the words as a list. Source: https://hopi.co.uk/random-word-generator/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'quantity': {'type': 'integer', 'default': 1, 'maximum': 20, 'minimum': 1, 'description': 'How many words to generate, 1 to 20 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary', 'words'], 'properties': {'words': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_ratio_calculator
Ratio calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'solve'}}}, 'then': {'required': ['c']}}], 'required': ['mode', 'a', 'b'], 'properties': {'a': {'type': 'number', 'description': 'First term of the ratio (positive)', 'exclusiveMinimum': 0}, 'b': {'type': 'number', 'description': 'Second term of the ratio (positive)', 'exclusiveMinimum': 0}, 'c': {'type': 'number', 'description': "Known term of the equivalent ratio, mode 'solve' (a : b = c : x)", 'exclusiveMinimum': 0}, 'mode': {'enum': ['simplify', 'solve'], 'type': 'string', 'description': "'simplify' a ratio, or 'solve' for the missing value"}}}
Ausgabeschema
{'type': 'object', 'required': ['a', 'b', 'mode', 'source_url', 'summary'], 'properties': {'a': {'type': 'number'}, 'b': {'type': 'number'}, 'mode': {'type': 'string'}, 'oneToN': {'type': 'string'}, 'decimal': {'type': 'number'}, 'summary': {'type': 'string'}, 'simplified': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'simplifiedA': {'type': 'number'}, 'simplifiedB': {'type': 'number'}}, 'additionalProperties': True}
hopi_reading_time_calculator
Reading time calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to measure'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'words': {'type': 'number'}, 'summary': {'type': 'string'}, 'aloudTime': {'type': 'string'}, 'silentTime': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_redundancy_pay_calculator
Redundancy pay calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['age', 'years', 'weeklyPay'], 'properties': {'age': {'type': 'integer', 'maximum': 100, 'minimum': 15, 'description': 'Age at redundancy (15 to 100)'}, 'years': {'type': 'integer', 'maximum': 60, 'minimum': 0, 'description': 'Full years of continuous service (0 to 60, cannot exceed age)'}, 'weeklyPay': {'type': 'number', 'maximum': 1000000, 'description': 'Gross weekly pay in GBP', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['age', 'source_url', 'summary', 'total', 'weeklyPay', 'weeks', 'years'], 'properties': {'age': {'type': 'number'}, 'total': {'type': 'number'}, 'weeks': {'type': 'number'}, 'years': {'type': 'number'}, 'summary': {'type': 'string'}, 'weeklyPay': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'totalCapped': {'type': 'boolean'}, 'serviceCapped': {'type': 'boolean'}, 'cappedWeeklyPay': {'type': 'number'}, 'weeklyPayCapped': {'type': 'boolean'}}, 'additionalProperties': True}
hopi_remove_duplicate_lines
Duplicate line remover
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to deduplicate, one item per line'}, 'caseInsensitive': {'type': 'boolean', 'default': False, 'description': 'Treat lines that differ only in case as duplicates (default false)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'kept': {'type': 'number'}, 'result': {'type': 'string'}, 'removed': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_remove_extra_spaces
Remove extra spaces
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to clean'}, 'removeBlankLines': {'type': 'boolean', 'default': False, 'description': 'Also drop empty lines (default false)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'lines': {'type': 'number'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_remove_line_breaks
Remove line breaks
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'mode': {'enum': ['spaces', 'paragraphs'], 'type': 'string', 'default': 'spaces', 'description': "'spaces' joins everything into one block (default), 'paragraphs' keeps paragraph breaks"}, 'text': {'type': 'string', 'description': 'The text to join'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_reverse_text
Reverse text generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'mode': {'enum': ['characters', 'words', 'each'], 'type': 'string', 'default': 'characters', 'description': "'characters' (default), 'words' reverses word order per line, 'each' reverses letters within each word"}, 'text': {'type': 'string', 'description': 'The text to reverse'}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'result', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_rgb_to_hex
RGB to hex converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['r', 'g', 'b'], 'properties': {'b': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'Blue, 0 to 255'}, 'g': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'Green, 0 to 255'}, 'r': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'Red, 0 to 255'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'hex': {'type': 'string'}, 'summary': {'type': 'string'}, 'rgbString': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_ring_size_converter
Ring size converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'mode'], 'properties': {'mode': {'enum': ['uk', 'us', 'mm'], 'type': 'string', 'description': 'Which scale the value is in'}, 'value': {'type': 'string', 'minLength': 1, 'description': 'The ring size to convert: a UK letter (uk mode), or a number (us or mm mode)'}}}
Ausgabeschema
{'type': 'object', 'required': ['circumferenceMm', 'diameterMm', 'mode', 'source_url', 'summary', 'uk', 'us'], 'properties': {'uk': {'type': 'string'}, 'us': {'type': 'string'}, 'mode': {'type': 'string'}, 'summary': {'type': 'string'}, 'diameterMm': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'circumferenceMm': {'type': 'number'}}, 'additionalProperties': True}
hopi_robots_txt_generator
Robots.txt generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'preset': {'const': 'custom'}}}, 'then': {'required': ['rules']}}], 'required': [], 'properties': {'rules': {'type': 'array', 'items': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Path such as /private/ (blank disallow means allow everything)'}, 'agent': {'type': 'string', 'default': '*', 'description': "User agent, default '*' for all crawlers"}, 'directive': {'enum': ['allow', 'disallow'], 'type': 'string', 'default': 'disallow', 'description': "'allow' or 'disallow' (default disallow)"}}}, 'description': 'Custom rules, each an object with agent, directive and path'}, 'preset': {'enum': ['allow', 'block', 'wordpress', 'custom'], 'type': 'string', 'description': 'Use a ready-made rule set instead of custom rules'}, 'sitemap': {'type': 'string', 'format': 'uri', 'description': 'Optional sitemap URL for the Sitemap line'}}}
Ausgabeschema
{'type': 'object', 'required': ['robotsTxt', 'source_url', 'summary'], 'properties': {'summary': {'type': 'string'}, 'robotsTxt': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_roman_numerals_converter
Roman numerals converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value'], 'properties': {'value': {'type': 'string', 'pattern': '^\\s*(\\d+|[IVXLCDMivxlcdm]+)\\s*$', 'minLength': 1, 'description': 'A whole number from 1 to 3999, or a Roman numeral using I, V, X, L, C, D and M'}}}
Ausgabeschema
{'type': 'object', 'required': ['direction', 'number', 'roman', 'source_url', 'summary'], 'properties': {'roman': {'type': 'string'}, 'number': {'type': 'number'}, 'summary': {'type': 'string'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_rounding_calculator
Rounding & significant figures calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'dp'}}}, 'then': {'properties': {'count': {'maximum': 12, 'minimum': 0}}}}, {'if': {'properties': {'mode': {'const': 'sf'}}}, 'then': {'properties': {'count': {'maximum': 15, 'minimum': 1}}}}], 'required': ['number', 'mode', 'count'], 'properties': {'mode': {'enum': ['dp', 'sf'], 'type': 'string', 'description': "'dp' for decimal places, or 'sf' for significant figures"}, 'count': {'type': 'integer', 'maximum': 15, 'minimum': 0, 'description': 'How many decimal places (0 to 12) or significant figures (1 to 15)'}, 'number': {'type': 'number', 'description': 'The number to round'}}}
Ausgabeschema
{'type': 'object', 'required': ['count', 'formatted', 'mode', 'number', 'rounded', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'count': {'type': 'number'}, 'number': {'type': 'number'}, 'rounded': {'type': 'number'}, 'summary': {'type': 'string'}, 'formatted': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_running_pace_calculator
Running pace calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'pace'}}}, 'then': {'required': ['distance', 'timeSeconds']}}, {'if': {'properties': {'mode': {'const': 'time'}}}, 'then': {'required': ['distance', 'paceSeconds']}}, {'if': {'properties': {'mode': {'const': 'distance'}}}, 'then': {'required': ['timeSeconds', 'paceSeconds']}}], 'required': ['mode'], 'properties': {'mode': {'enum': ['pace', 'time', 'distance'], 'type': 'string', 'description': 'Which value to solve for'}, 'unit': {'enum': ['km', 'mi'], 'type': 'string', 'default': 'km', 'description': "Unit for distance and the given pace. Default 'km'"}, 'distance': {'type': 'number', 'description': "Distance in the chosen unit (needed for 'pace' and 'time' modes)", 'exclusiveMinimum': 0}, 'paceSeconds': {'type': 'number', 'description': "Pace in seconds per unit (needed for 'time' and 'distance' modes)", 'exclusiveMinimum': 0}, 'timeSeconds': {'type': 'number', 'description': "Total time in seconds (needed for 'pace' and 'distance' modes)", 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['distance', 'kph', 'mode', 'mph', 'pacePerKm', 'pacePerMile', 'source_url', 'summary', 'time', 'timeSeconds', 'unit'], 'properties': {'kph': {'type': 'number'}, 'mph': {'type': 'number'}, 'mode': {'type': 'string'}, 'time': {'type': 'string'}, 'unit': {'type': 'string'}, 'summary': {'type': 'string'}, 'distance': {'type': 'number'}, 'pacePerKm': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'pacePerMile': {'type': 'string'}, 'timeSeconds': {'type': 'number'}}, 'additionalProperties': True}
hopi_satoshi_converter
Satoshi to BTC converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['mode', 'value'], 'properties': {'mode': {'enum': ['sats_to_btc', 'btc_to_sats'], 'type': 'string', 'description': 'Direction of conversion'}, 'value': {'type': 'string', 'description': 'The amount to convert: whole satoshis for sats_to_btc, or a BTC amount for btc_to_sats'}}}
Ausgabeschema
{'type': 'object', 'required': ['bits', 'btc', 'display', 'mbtc', 'mode', 'sats', 'source_url', 'summary'], 'properties': {'btc': {'type': 'string'}, 'bits': {'type': 'string'}, 'mbtc': {'type': 'string'}, 'mode': {'type': 'string'}, 'sats': {'type': 'string'}, 'display': {'type': 'object'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_savings_goal_calculator
Savings goal calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'monthly'}}}, 'then': {'required': ['years']}}, {'if': {'properties': {'mode': {'const': 'time'}}}, 'then': {'required': ['monthly']}}], 'required': ['mode', 'target', 'rate'], 'properties': {'mode': {'enum': ['time', 'monthly'], 'type': 'string', 'description': "'time' finds the time to reach the goal; 'monthly' finds the monthly saving needed"}, 'rate': {'type': 'number', 'minimum': 0, 'description': 'Annual interest rate as a percentage'}, 'start': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Starting balance in GBP (default 0)'}, 'years': {'type': 'number', 'description': 'Monthly mode: number of years to reach the goal', 'exclusiveMinimum': 0}, 'target': {'type': 'number', 'description': 'Savings target in GBP (greater than zero)', 'exclusiveMinimum': 0}, 'monthly': {'type': 'number', 'minimum': 0, 'description': 'Time mode: monthly deposit in GBP'}}}
Ausgabeschema
{'type': 'object', 'required': ['finalBalance', 'interest', 'mode', 'months', 'rate', 'source_url', 'start', 'summary', 'target', 'totalPaidIn'], 'properties': {'mode': {'type': 'string'}, 'rate': {'type': 'number'}, 'start': {'type': 'number'}, 'months': {'type': 'number'}, 'target': {'type': 'number'}, 'monthly': {'type': 'number'}, 'summary': {'type': 'string'}, 'interest': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'timeToReach': {'type': 'string'}, 'totalPaidIn': {'type': 'number'}, 'finalBalance': {'type': 'number'}}, 'additionalProperties': True}
hopi_schema_markup_generator
Schema markup generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'type': {'const': 'faq'}}}, 'then': {'required': ['faqs']}}, {'if': {'properties': {'type': {'const': 'article'}}}, 'then': {'required': ['headline']}}, {'if': {'properties': {'type': {'const': 'local'}}}, 'then': {'required': ['name']}}, {'if': {'properties': {'type': {'const': 'breadcrumb'}}}, 'then': {'required': ['items']}}], 'required': ['type'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': "For type 'local': website URL"}, 'faqs': {'type': 'array', 'items': {'type': 'object', 'properties': {'a': {'type': 'string', 'description': 'Answer'}, 'q': {'type': 'string', 'description': 'Question'}}}, 'description': "For type 'faq': questions and answers"}, 'name': {'type': 'string', 'description': "For type 'local': business name"}, 'town': {'type': 'string', 'description': "For type 'local': town or locality"}, 'type': {'enum': ['faq', 'article', 'local', 'breadcrumb'], 'type': 'string', 'description': 'The schema type to build'}, 'hours': {'type': 'string', 'description': "For type 'local': opening hours"}, 'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'Page URL'}, 'name': {'type': 'string', 'description': 'Page name'}}}, 'description': "For type 'breadcrumb': ordered pages"}, 'phone': {'type': 'string', 'description': "For type 'local': telephone"}, 'author': {'type': 'string', 'description': "For type 'article': author name"}, 'street': {'type': 'string', 'description': "For type 'local': street address"}, 'headline': {'type': 'string', 'description': "For type 'article': the headline"}, 'modified': {'type': 'string', 'description': "For type 'article': date modified"}, 'postcode': {'type': 'string', 'description': "For type 'local': postal code"}, 'published': {'type': 'string', 'description': "For type 'article': date published"}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'html': {'type': 'string'}, 'type': {'type': 'string'}, 'jsonLd': {'type': 'object'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_scientific_calculator
Scientific calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['expression'], 'properties': {'angleMode': {'enum': ['deg', 'rad'], 'type': 'string', 'default': 'deg', 'description': "Angle units for trigonometry: 'deg' (default) or 'rad'"}, 'expression': {'type': 'string', 'minLength': 1, 'description': "The maths expression, e.g. '2 + 3 * 4', 'sin(30)', 'sqrt(2)^2', '5!'"}}}
Ausgabeschema
{'type': 'object', 'required': ['angleMode', 'expression', 'formatted', 'result', 'source_url', 'summary'], 'properties': {'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'angleMode': {'type': 'string'}, 'formatted': {'type': 'string'}, 'expression': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_secret_santa_generator
Secret Santa generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['names'], 'properties': {'names': {'type': 'array', 'minItems': 2, 'description': 'The list of participant names (at least two, no duplicates)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'pairs': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_shoe_size_converter
Shoe size converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'sex': {'const': 'men'}}}, 'then': {'properties': {'ukSize': {'maximum': 13, 'minimum': 5}}}}, {'if': {'properties': {'sex': {'const': 'women'}}}, 'then': {'properties': {'ukSize': {'maximum': 9, 'minimum': 2}}}}], 'required': ['ukSize', 'sex'], 'properties': {'sex': {'enum': ['men', 'women'], 'type': 'string', 'description': 'Which sizing chart to use'}, 'ukSize': {'type': 'number', 'maximum': 13, 'minimum': 2, 'multipleOf': 0.5, 'description': 'UK shoe size (whole or half, e.g. 8 or 8.5)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'eu': {'type': 'number'}, 'uk': {'type': 'number'}, 'us': {'type': 'number'}, 'sex': {'type': 'string'}, 'note': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_sleep_calculator
Sleep cycle calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['mode', 'time'], 'properties': {'mode': {'enum': ['wake', 'bedtime'], 'type': 'string', 'description': "'wake' to find bedtimes from a wake time, or 'bedtime' to find wake times from a bedtime"}, 'time': {'type': 'string', 'format': 'time', 'description': "The known time as 'HH:MM' (24-hour): the wake time for mode 'wake', or the bedtime for mode 'bedtime'"}}}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'options', 'source_url', 'summary', 'time'], 'properties': {'mode': {'type': 'string'}, 'time': {'type': 'string'}, 'options': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_slot_machine_picker
Slot machine name picker
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'maxItems': 100, 'minItems': 2, 'description': 'The list of names or options on the reel (at least two)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'index': {'type': 'number'}, 'winner': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_slug_generator
Slug generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'minLength': 1, 'description': 'The title or text to slugify'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'slug': {'type': 'string'}, 'length': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_small_text_generator
Small text generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to convert'}, 'style': {'enum': ['superscript', 'smallcaps', 'fullwidth'], 'type': 'string', 'default': 'superscript', 'description': 'Which style to apply (default superscript)'}}}
Ausgabeschema
{'type': 'object', 'required': ['result', 'source_url', 'style', 'summary'], 'properties': {'style': {'type': 'string'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_special_characters
Special characters to copy
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'group': {'enum': ['arrows', 'stars', 'maths', 'currency', 'punctuation', 'legal', 'accents'], 'type': 'string', 'description': 'Optional: return only this group. Omit to return every group.'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'group': {'type': 'string'}, 'summary': {'type': 'string'}, 'characters': {'type': 'array'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_speed_converter
Speed converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'from', 'to'], 'properties': {'to': {'enum': ['mph', 'kmh', 'ms', 'kn', 'mach'], 'type': 'string', 'description': 'Unit to convert to'}, 'from': {'enum': ['mph', 'kmh', 'ms', 'kn', 'mach'], 'type': 'string', 'description': 'Unit to convert from'}, 'value': {'type': 'number', 'minimum': 0, 'description': 'The speed value to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['from', 'result', 'source_url', 'summary', 'to', 'value'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_spin_the_bottle
Spin the bottle
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['players'], 'properties': {'players': {'type': 'array', 'maxItems': 20, 'minItems': 2, 'description': 'The list of players in the circle (at least two)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'index': {'type': 'number'}, 'chosen': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_sql_formatter
SQL formatter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['sql'], 'properties': {'sql': {'type': 'string', 'minLength': 1, 'description': 'The SQL query to format'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'summary': {'type': 'string'}, 'formatted': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_staking_calculator
Staking rewards calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['principal', 'rate', 'years'], 'properties': {'rate': {'type': 'number', 'maximum': 1000, 'minimum': 0, 'description': 'Quoted rate as a percentage (0 to 1000)'}, 'years': {'type': 'number', 'maximum': 100, 'description': 'Term in years (above 0, up to 100)', 'exclusiveMinimum': 0}, 'rateType': {'enum': ['apr', 'apy'], 'type': 'string', 'default': 'apr', 'description': 'Whether the rate is APR (needs compounding) or APY (default apr)'}, 'principal': {'type': 'number', 'description': 'Amount staked', 'exclusiveMinimum': 0}, 'compounding': {'enum': ['daily', 'monthly'], 'type': 'string', 'default': 'daily', 'description': 'Compounding frequency for APR (default daily)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'note': {'type': 'string'}, 'rewards': {'type': 'number'}, 'summary': {'type': 'string'}, 'rateType': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'compounding': {'type': ['string', 'null']}, 'finalBalance': {'type': 'number'}, 'rewardsString': {'type': 'string'}, 'finalBalanceString': {'type': 'string'}, 'effectiveApyPercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_stamp_duty_calculator
Stamp duty calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['price', 'buyer'], 'properties': {'buyer': {'enum': ['ftb', 'home', 'additional'], 'type': 'string', 'description': "'ftb' first-time buyer, 'home' moving home, 'additional' second home or buy-to-let"}, 'price': {'type': 'number', 'maximum': 100000000, 'description': 'Property purchase price in GBP', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['breakdown', 'buyer', 'effectiveRatePercent', 'price', 'source_url', 'stampDuty', 'summary'], 'properties': {'buyer': {'type': 'string'}, 'price': {'type': 'number'}, 'summary': {'type': 'string'}, 'breakdown': {'type': 'array'}, 'stampDuty': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'effectiveRatePercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_standard_deviation_calculator
Standard deviation calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['numbers'], 'properties': {'numbers': {'type': 'string', 'minLength': 1, 'description': 'A list of numbers separated by spaces, commas, semicolons or new lines'}}}
Ausgabeschema
{'type': 'object', 'required': ['count', 'mean', 'populationStandardDeviation', 'populationVariance', 'sampleStandardDeviation', 'sampleVariance', 'source_url', 'summary'], 'properties': {'mean': {'type': 'number'}, 'count': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'sampleVariance': {'type': ['number', 'null']}, 'populationVariance': {'type': 'number'}, 'sampleStandardDeviation': {'type': ['number', 'null']}, 'populationStandardDeviation': {'type': 'number'}}, 'additionalProperties': True}
hopi_star_sign_calculator
Star sign calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['date'], 'properties': {'date': {'type': 'string', 'format': 'date', 'description': 'Date of birth in YYYY-MM-DD format'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'date': {'type': 'string'}, 'sign': {'type': 'string'}, 'range': {'type': 'string'}, 'symbol': {'type': 'string'}, 'element': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_student_loan_calculator
Student loan repayment calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['salary', 'plan'], 'properties': {'plan': {'enum': ['p1', 'p2', 'p4', 'p5', 'pg'], 'type': 'string', 'description': 'Repayment plan'}, 'salary': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': 'Annual salary in GBP'}, 'addPostgraduate': {'type': 'boolean', 'default': False, 'description': 'Add a Postgraduate Loan on top of an undergraduate plan (ignored when plan is pg; default false)'}}}
Ausgabeschema
{'type': 'object', 'required': ['addPostgraduate', 'plan', 'postgraduatePart', 'repaymentPerMonth', 'repaymentPerYear', 'salary', 'source_url', 'summary', 'undergraduatePart'], 'properties': {'plan': {'type': 'string'}, 'salary': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'addPostgraduate': {'type': 'boolean'}, 'postgraduatePart': {'type': 'number'}, 'repaymentPerYear': {'type': 'number'}, 'repaymentPerMonth': {'type': 'number'}, 'undergraduatePart': {'type': 'number'}}, 'additionalProperties': True}
hopi_take_home_pay_calculator
Take-home pay calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['salary'], 'properties': {'salary': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': 'Annual gross salary in GBP'}}}
Ausgabeschema
{'type': 'object', 'required': ['incomeTax', 'nationalInsurance', 'salary', 'source_url', 'summary', 'takeHomePerMonth', 'takeHomePerWeek', 'takeHomePerYear'], 'properties': {'salary': {'type': 'number'}, 'summary': {'type': 'string'}, 'incomeTax': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'takeHomePerWeek': {'type': 'number'}, 'takeHomePerYear': {'type': 'number'}, 'takeHomePerMonth': {'type': 'number'}, 'nationalInsurance': {'type': 'number'}}, 'additionalProperties': True}
hopi_tarot_reader
Tarot card reader
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['spread'], 'properties': {'spread': {'enum': ['daily', 'past-present-future', 'situation', 'decision', 'relationship', 'career', 'celtic'], 'type': 'string', 'description': 'Which spread to draw'}, 'reversed': {'type': 'boolean', 'description': 'Allow reversed cards (default true)'}}}
Ausgabeschema
{'type': 'object', 'required': ['majorCount', 'positions', 'reversedCount', 'source_url', 'spread', 'spreadName', 'summary'], 'properties': {'spread': {'type': 'string'}, 'summary': {'type': 'string'}, 'positions': {'type': 'array'}, 'majorCount': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'spreadName': {'type': 'string'}, 'reversedCount': {'type': 'number'}}, 'additionalProperties': True}
hopi_tdee_calculator
TDEE & calorie calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'units': {'const': 'metric'}}}, 'then': {'required': ['heightCm', 'weightKg']}}, {'if': {'properties': {'units': {'const': 'imperial'}}}, 'then': {'required': ['heightInches', 'weightPounds']}}], 'required': ['sex', 'age', 'units'], 'properties': {'age': {'type': 'number', 'maximum': 120, 'description': 'Age in years', 'exclusiveMinimum': 0}, 'sex': {'enum': ['male', 'female'], 'type': 'string', 'description': 'Biological sex'}, 'units': {'enum': ['metric', 'imperial'], 'type': 'string', 'description': "'metric' (cm, kg) or 'imperial' (inches, pounds)"}, 'activity': {'enum': ['sedentary', 'light', 'moderate', 'active', 'very_active'], 'type': 'string', 'default': 'moderate', 'description': "Activity level, default 'moderate'"}, 'heightCm': {'type': 'number', 'maximum': 260, 'minimum': 50, 'description': 'Height in centimetres (metric)'}, 'weightKg': {'type': 'number', 'maximum': 500, 'description': 'Weight in kilograms (metric)', 'exclusiveMinimum': 0}, 'heightInches': {'type': 'number', 'description': 'Total height in inches (imperial)', 'exclusiveMinimum': 0}, 'weightPounds': {'type': 'number', 'description': 'Weight in pounds (imperial)', 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['activity', 'activityFactor', 'age', 'bmr', 'gain', 'loss', 'mildLoss', 'sex', 'source_url', 'summary', 'tdee'], 'properties': {'age': {'type': 'number'}, 'bmr': {'type': 'number'}, 'sex': {'type': 'string'}, 'gain': {'type': 'number'}, 'loss': {'type': 'number'}, 'tdee': {'type': 'number'}, 'summary': {'type': 'string'}, 'activity': {'type': 'string'}, 'mildLoss': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'activityFactor': {'type': 'number'}}, 'additionalProperties': True}
hopi_test_card_number_generator
Test card number generator
Generate Luhn-valid TEST card numbers for QA and development, or validate a card number. Test numbers pass the Luhn checksum and match a real brand format but are NOT real accounts, are linked to no one, and cannot be charged. Generate mode returns numbers for a brand (Visa, Mastercard, American Express, Discover); validate mode returns whether a number passes Luhn and its detected brand. Runs on Hopi's server; nothing is stored and no bank is contacted. Source: https://hopi.co.uk/test-card-number-generator/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {'mode': {'enum': ['generate', 'validate'], 'type': 'string', 'default': 'generate', 'description': 'Generate test numbers, or validate a supplied number (default generate)'}, 'brand': {'enum': ['visa', 'mastercard', 'amex', 'discover'], 'type': 'string', 'default': 'visa', 'description': 'Card brand to generate (default visa)'}, 'count': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'How many numbers to generate, 1 to 50 (default 10)'}, 'number': {'type': 'string', 'description': 'For validate mode: the card number to check (spaces and dashes are ignored)'}}}
Ausgabeschema
{'type': 'object', 'required': ['brand', 'mode', 'note', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'note': {'type': 'string'}, 'brand': {'type': 'string'}, 'count': {'type': 'number'}, 'numbers': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_text_repeater
Text repeater
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text', 'count'], 'properties': {'text': {'type': 'string', 'description': 'The text to repeat'}, 'count': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'How many times to repeat it (1 to 10000)'}, 'numbering': {'type': 'boolean', 'default': False, 'description': "Prefix each repeat with a number, e.g. '1. ' (default false)"}, 'separator': {'enum': ['none', 'space', 'newline', 'comma', 'custom'], 'type': 'string', 'default': 'none', 'description': 'How to join the repeats (default none)'}, 'customSeparator': {'type': 'string', 'description': "The separator string to use when separator is 'custom'"}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'lines': {'type': 'number'}, 'capped': {'type': 'boolean'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'characters': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_text_splitter
Text splitter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'delimiter'}}}, 'then': {'required': ['delimiter']}}], 'required': ['text'], 'properties': {'mode': {'enum': ['length', 'delimiter'], 'type': 'string', 'default': 'length', 'description': "'length' splits by character size (default), 'delimiter' splits at a delimiter"}, 'size': {'type': 'integer', 'default': 280, 'minimum': 10, 'description': 'Maximum characters per block for length mode (at least 10, default 280)'}, 'text': {'type': 'string', 'description': 'The text to split'}, 'numbered': {'type': 'boolean', 'default': False, 'description': "Add ' n/total' numbering to each block in length mode (default false)"}, 'delimiter': {'type': 'string', 'minLength': 1, 'description': 'The delimiter for delimiter mode; \\n and \\t are interpreted as newline and tab'}}}
Ausgabeschema
{'type': 'object', 'required': ['blocks', 'count', 'mode', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'count': {'type': 'number'}, 'blocks': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_time_calculator
Time calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'hours1': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Hours of the first duration (default 0)'}, 'hours2': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Hours of the second duration (default 0)'}, 'minutes1': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Minutes of the first duration (default 0)'}, 'minutes2': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Minutes of the second duration (default 0)'}, 'operation': {'enum': ['add', 'subtract'], 'type': 'string', 'default': 'add', 'description': "Add or subtract the second duration from the first (default 'add')"}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'clock': {'type': 'string'}, 'summary': {'type': 'string'}, 'operation': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'decimalHours': {'type': 'number'}, 'totalMinutes': {'type': 'number'}}, 'additionalProperties': True}
hopi_time_zone_converter
Time zone converter
Convert a wall-clock date and time from one time zone to another, using the server's IANA time zone data (so daylight saving is handled). Date uses YYYY-MM-DD and time uses 24-hour HH:MM. Zones are IANA identifiers such as Europe/London or America/New_York. Returns the converted time, the day difference, and both UTC offsets. Source: https://hopi.co.uk/time-zone-converter/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['date', 'time', 'fromZone', 'toZone'], 'properties': {'date': {'type': 'string', 'format': 'date', 'description': 'The date in the source zone, YYYY-MM-DD format'}, 'time': {'type': 'string', 'format': 'time', 'description': 'The time in the source zone, 24-hour HH:MM format'}, 'toZone': {'enum': ['UTC', 'Europe/London', 'Europe/Paris', 'Europe/Berlin', 'Europe/Madrid', 'Europe/Athens', 'Europe/Moscow', 'Asia/Dubai', 'Asia/Kolkata', 'Asia/Bangkok', 'Asia/Singapore', 'Asia/Hong_Kong', 'Asia/Shanghai', 'Asia/Tokyo', 'Australia/Sydney', 'Pacific/Auckland', 'America/New_York', 'America/Chicago', 'America/Denver', 'America/Los_Angeles', 'America/Sao_Paulo'], 'type': 'string', 'description': 'Target IANA time zone, e.g. America/New_York'}, 'fromZone': {'enum': ['UTC', 'Europe/London', 'Europe/Paris', 'Europe/Berlin', 'Europe/Madrid', 'Europe/Athens', 'Europe/Moscow', 'Asia/Dubai', 'Asia/Kolkata', 'Asia/Bangkok', 'Asia/Singapore', 'Asia/Hong_Kong', 'Asia/Shanghai', 'Asia/Tokyo', 'Australia/Sydney', 'Pacific/Auckland', 'America/New_York', 'America/Chicago', 'America/Denver', 'America/Los_Angeles', 'America/Sao_Paulo'], 'type': 'string', 'description': 'Source IANA time zone, e.g. Europe/London'}}}
Ausgabeschema
{'type': 'object', 'required': ['dayDifference', 'dayNote', 'fromOffset', 'fromZone', 'onDstGap', 'result', 'resultLong', 'source_url', 'summary', 'toOffset', 'toZone'], 'properties': {'result': {'type': 'string'}, 'toZone': {'type': 'string'}, 'dayNote': {'type': 'string'}, 'summary': {'type': 'string'}, 'fromZone': {'type': 'string'}, 'onDstGap': {'type': 'boolean'}, 'toOffset': {'type': 'string'}, 'fromOffset': {'type': 'string'}, 'resultLong': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'dayDifference': {'type': 'number'}}, 'additionalProperties': True}
hopi_tip_calculator
Tip calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['bill'], 'properties': {'bill': {'type': 'number', 'description': 'The bill amount before tip'}, 'split': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Number of people to split between (default 1)'}, 'tipPercent': {'type': 'number', 'default': 12.5, 'minimum': 0, 'description': 'Tip as a percentage (default 12.5)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'tip': {'type': 'number'}, 'bill': {'type': 'number'}, 'split': {'type': 'number'}, 'total': {'type': 'number'}, 'summary': {'type': 'string'}, 'perPerson': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'tipPercent': {'type': 'number'}}, 'additionalProperties': True}
hopi_triangle_calculator
Right-angle triangle calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'a': {'type': 'number', 'description': 'Side a, the opposite (greater than 0)', 'exclusiveMinimum': 0}, 'b': {'type': 'number', 'description': 'Side b, the adjacent (greater than 0)', 'exclusiveMinimum': 0}, 'c': {'type': 'number', 'description': 'Side c, the hypotenuse (greater than 0, must be the longest side)', 'exclusiveMinimum': 0}, 'angleA': {'type': 'number', 'description': 'Angle A in degrees, strictly between 0 and 90', 'exclusiveMaximum': 90, 'exclusiveMinimum': 0}}}
Ausgabeschema
{'type': 'object', 'required': ['a', 'angleA', 'angleB', 'area', 'b', 'c', 'method', 'perimeter', 'source_url', 'summary'], 'properties': {'a': {'type': 'number'}, 'b': {'type': 'number'}, 'c': {'type': 'number'}, 'area': {'type': 'number'}, 'angleA': {'type': 'number'}, 'angleB': {'type': 'number'}, 'method': {'type': 'string'}, 'summary': {'type': 'string'}, 'perimeter': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_ucas_points_calculator
UCAS points calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'a': {'type': 'integer', 'maximum': 20, 'minimum': 0, 'description': 'Number of A grades (0 to 20)'}, 'b': {'type': 'integer', 'maximum': 20, 'minimum': 0, 'description': 'Number of B grades (0 to 20)'}, 'c': {'type': 'integer', 'maximum': 20, 'minimum': 0, 'description': 'Number of C grades (0 to 20)'}, 'd': {'type': 'integer', 'maximum': 20, 'minimum': 0, 'description': 'Number of D grades (0 to 20)'}, 'e': {'type': 'integer', 'maximum': 20, 'minimum': 0, 'description': 'Number of E grades (0 to 20)'}, 'aStar': {'type': 'integer', 'maximum': 20, 'minimum': 0, 'description': 'Number of A* grades (0 to 20)'}}}
Ausgabeschema
{'type': 'object', 'required': ['gradesCounted', 'source_url', 'summary', 'totalPoints'], 'properties': {'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'totalPoints': {'type': 'number'}, 'gradesCounted': {'type': 'number'}}, 'additionalProperties': True}
hopi_unicode_inspector
Unicode inspector
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to inspect'}}}
Ausgabeschema
{'type': 'object', 'required': ['characters', 'codePoints', 'source_url', 'summary', 'utf16Length', 'utf8Bytes'], 'properties': {'summary': {'type': 'string'}, 'utf8Bytes': {'type': 'number'}, 'characters': {'type': 'array'}, 'codePoints': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'utf16Length': {'type': 'number'}}, 'additionalProperties': True}
hopi_unit_price_calculator
Unit price comparison
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['price', 'quantity', 'unit'], 'properties': {'unit': {'enum': ['g', 'kg', 'ml', 'l', 'each'], 'type': 'string', 'description': 'Unit of the quantity'}, 'price': {'type': 'number', 'minimum': 0, 'description': 'Price in GBP'}, 'quantity': {'type': 'number', 'description': 'Quantity in the chosen unit (greater than zero)', 'exclusiveMinimum': 0}}}, 'minItems': 2, 'description': 'The items to compare (at least two)'}}}
Ausgabeschema
{'type': 'object', 'required': ['bestItem', 'bestUnitPrice', 'items', 'mixedUnits', 'source_url', 'summary'], 'properties': {'items': {'type': 'array'}, 'summary': {'type': 'string'}, 'bestItem': {'type': 'number'}, 'mixedUnits': {'type': 'boolean'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'bestUnitPrice': {'type': 'number'}}, 'additionalProperties': True}
hopi_unix_timestamp_converter
Unix timestamp converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'anyOf': [{'required': ['timestamp']}, {'required': ['date']}], 'required': [], 'properties': {'date': {'type': 'string', 'description': 'A date as YYYY-MM-DD. Provide this to convert a date to a timestamp.'}, 'time': {'type': 'string', 'description': "Optional time as HH:MM:SS to accompany 'date' (default 00:00:00), in local time."}, 'timestamp': {'type': 'string', 'description': 'A Unix timestamp in seconds or milliseconds (may be negative). Provide this to convert a timestamp to a date.'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'iso': {'type': 'string'}, 'utc': {'type': 'string'}, 'unit': {'type': 'string'}, 'local': {'type': 'string'}, 'summary': {'type': 'string'}, 'relative': {'type': 'string'}, 'direction': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_upside_down_text
Upside down text
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to flip upside down'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_url_encoder
URL encode & decode
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'mode': {'enum': ['component', 'uri'], 'type': 'string', 'default': 'component', 'description': "'component' for a single value, 'uri' for a whole URL (default 'component')"}, 'text': {'type': 'string', 'minLength': 1, 'description': 'The text or URL to encode or decode'}, 'action': {'enum': ['encode', 'decode'], 'type': 'string', 'default': 'encode', 'description': "Whether to encode or decode (default 'encode')"}}}
Ausgabeschema
{'type': 'object', 'required': ['action', 'mode', 'result', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'action': {'type': 'string'}, 'result': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_url_parser
URL parser
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'minLength': 1, 'description': 'The URL to parse'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'host': {'type': 'string'}, 'path': {'type': 'string'}, 'port': {'type': 'string'}, 'origin': {'type': 'string'}, 'params': {'type': 'array'}, 'summary': {'type': 'string'}, 'fragment': {'type': 'string'}, 'protocol': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'portIsDefault': {'type': 'boolean'}, 'schemeAssumed': {'type': 'boolean'}}, 'additionalProperties': True}
hopi_user_agent_parser
User agent parser
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['ua'], 'properties': {'ua': {'type': 'string', 'minLength': 1, 'description': 'The user agent string to parse'}}}
Ausgabeschema
{'type': 'object', 'required': ['bot', 'browser', 'device', 'engine', 'os', 'source_url', 'summary'], 'properties': {'os': {'type': 'string'}, 'bot': {'type': 'boolean'}, 'device': {'type': 'string'}, 'engine': {'type': 'string'}, 'browser': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_username_generator
Username generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'count': {'type': 'integer', 'default': 6, 'maximum': 50, 'minimum': 1, 'description': 'How many usernames to generate, 1 to 50 (default 6)'}, 'addNumbers': {'type': 'boolean', 'default': False, 'description': 'Append a two-digit number to each name (default false)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary', 'usernames'], 'properties': {'summary': {'type': 'string'}, 'usernames': {'type': 'array'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_utm_link_generator
UTM link generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'minLength': 1, 'description': 'The base URL to tag (https:// assumed if no scheme given)'}, 'utm_term': {'type': 'string', 'description': 'Paid keyword term (optional)'}, 'utm_medium': {'type': 'string', 'description': 'The marketing medium, e.g. email'}, 'utm_source': {'type': 'string', 'description': 'Where the traffic comes from, e.g. newsletter'}, 'utm_content': {'type': 'string', 'description': 'Content variant, e.g. button vs text link (optional)'}, 'utm_campaign': {'type': 'string', 'description': 'The campaign name'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'url': {'type': 'string'}, 'notes': {'type': 'array'}, 'summary': {'type': 'string'}, 'warning': {'type': ['string', 'null']}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_uuid_generator
UUID generator
Generate 1 to 100 random version 4 UUIDs using a cryptographically secure random source. Never uses Math.random. Source: https://hopi.co.uk/uuid-generator/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'count': {'type': 'integer', 'default': 1, 'maximum': 100, 'minimum': 1, 'description': 'How many UUIDs to generate, 1 to 100 (default 1)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'count': {'type': 'number'}, 'uuids': {'type': 'array'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_vat_calculator
VAT calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['amount', 'mode'], 'properties': {'mode': {'enum': ['add', 'remove'], 'type': 'string', 'description': "'add' VAT to a net amount, or 'remove' VAT from a gross amount"}, 'rate': {'type': 'number', 'default': 20, 'maximum': 100, 'minimum': 0, 'description': 'VAT rate as a percentage (default 20)'}, 'amount': {'type': 'number', 'description': 'The money amount'}}}
Ausgabeschema
{'type': 'object', 'required': ['gross', 'mode', 'net', 'rate', 'source_url', 'summary', 'vat'], 'properties': {'net': {'type': 'number'}, 'vat': {'type': 'number'}, 'mode': {'type': 'string'}, 'rate': {'type': 'number'}, 'gross': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_vigenere_cipher
Vigenere cipher
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['key', 'text'], 'properties': {'key': {'type': 'string', 'description': 'The keyword (only its A to Z letters are used)'}, 'mode': {'enum': ['encode', 'decode'], 'type': 'string', 'default': 'encode', 'description': "'encode' to apply the cipher, 'decode' to reverse it (default encode)"}, 'text': {'type': 'string', 'description': 'The text to transform'}}}
Ausgabeschema
{'type': 'object', 'required': ['output', 'source_url', 'summary'], 'properties': {'output': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_volume_converter
Volume converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'from', 'to'], 'properties': {'to': {'enum': ['ml', 'l', 'ukpt', 'ukgal', 'usgal', 'ukfloz', 'usfloz', 'm3'], 'type': 'string', 'description': 'Unit to convert to'}, 'from': {'enum': ['ml', 'l', 'ukpt', 'ukgal', 'usgal', 'ukfloz', 'usfloz', 'm3'], 'type': 'string', 'description': 'Unit to convert from'}, 'value': {'type': 'number', 'minimum': 0, 'description': 'The volume value to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_water_intake_calculator
Daily water intake calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'allOf': [{'if': {'properties': {'units': {'const': 'metric'}}}, 'then': {'required': ['weightKg']}}], 'required': ['units'], 'properties': {'hot': {'type': 'boolean', 'default': False, 'description': 'Add 500 ml for hot conditions. Default false'}, 'units': {'enum': ['metric', 'imperial'], 'type': 'string', 'description': "'metric' (kg) or 'imperial' (stone and pounds)"}, 'activity': {'enum': ['sedentary', 'light', 'moderate', 'active', 'very_active'], 'type': 'string', 'default': 'sedentary', 'description': "Activity level, default 'sedentary'"}, 'weightKg': {'type': 'number', 'maximum': 500, 'description': 'Weight in kilograms (metric)', 'exclusiveMinimum': 0}, 'weightStone': {'type': 'number', 'minimum': 0, 'description': 'Whole stone part of weight (imperial)'}, 'weightPounds': {'type': 'number', 'minimum': 0, 'description': 'Pounds part of weight (imperial)'}}}
Ausgabeschema
{'type': 'object', 'required': ['highGlasses', 'highLitres', 'highMl', 'lowGlasses', 'lowLitres', 'lowMl', 'source_url', 'summary', 'units'], 'properties': {'lowMl': {'type': 'number'}, 'units': {'type': 'string'}, 'highMl': {'type': 'number'}, 'summary': {'type': 'string'}, 'lowLitres': {'type': 'number'}, 'highLitres': {'type': 'number'}, 'lowGlasses': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'highGlasses': {'type': 'number'}}, 'additionalProperties': True}
hopi_week_number
What week number is it?
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'date': {'type': 'string', 'format': 'date', 'description': 'Optional date in YYYY-MM-DD format (defaults to today)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'date': {'type': 'string'}, 'week': {'type': 'number'}, 'isoYear': {'type': 'number'}, 'summary': {'type': 'string'}, 'weekEnd': {'type': 'string'}, 'weekStart': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_weight_converter
Weight converter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['value', 'from', 'to'], 'properties': {'to': {'enum': ['g', 'kg', 'oz', 'lb', 'st'], 'type': 'string', 'description': 'Unit to convert to'}, 'from': {'enum': ['g', 'kg', 'oz', 'lb', 'st'], 'type': 'string', 'description': 'Unit to convert from'}, 'value': {'type': 'number', 'minimum': 0, 'description': 'The weight value to convert'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'result': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_wheel_spinner
Wheel spinner
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'maxItems': 100, 'minItems': 2, 'description': 'The list of names or options on the wheel (at least two)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'index': {'type': 'number'}, 'winner': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_word_counter
Word counter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to analyse'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'words': {'type': 'number'}, 'summary': {'type': 'string'}, 'sentences': {'type': 'number'}, 'characters': {'type': 'number'}, 'paragraphs': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'readingTime': {'type': 'string'}, 'charactersNoSpaces': {'type': 'number'}}, 'additionalProperties': True}
hopi_word_frequency_counter
Word frequency counter
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The text to analyse'}, 'ignoreStopwords': {'type': 'boolean', 'default': False, 'description': 'Ignore common words such as the, and, of, to (default false)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'top': {'type': 'array'}, 'total': {'type': 'number'}, 'unique': {'type': 'number'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_working_days_calculator
Working days calculator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'format': 'date', 'description': 'End date in YYYY-MM-DD format'}, 'from': {'type': 'string', 'format': 'date', 'description': 'Start date in YYYY-MM-DD format'}, 'bankHolidays': {'type': 'boolean', 'default': True, 'description': 'Exclude England and Wales bank holidays as well as weekends (default true)'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'summary': {'type': 'string'}, 'swapped': {'type': 'boolean'}, 'complete': {'type': 'boolean'}, 'warnings': {'type': 'array'}, 'totalDays': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'weekendDays': {'type': 'number'}, 'workingDays': {'type': 'number'}, 'bankHolidays': {'type': 'boolean'}, 'holidayCoverage': {'type': 'object'}, 'bankHolidaysExcluded': {'type': 'number'}}, 'additionalProperties': True}
hopi_would_you_rather_generator
Would you rather and icebreaker generator
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['mode'], 'properties': {'mode': {'enum': ['would-you-rather', 'icebreaker', 'this-or-that'], 'type': 'string', 'description': 'Which list to draw from'}, 'count': {'type': 'integer', 'default': 1, 'maximum': 20, 'minimum': 1, 'description': 'How many to draw, 1 to 20 (default 1)'}, 'category': {'type': 'string', 'description': 'Optional category filter (would-you-rather: silly, food, travel, work, deep, kids; icebreaker: work, party, deep, kids). Omit for all.'}}}
Ausgabeschema
{'type': 'object', 'required': ['category', 'count', 'items', 'mode', 'poolSize', 'source_url', 'summary'], 'properties': {'mode': {'type': 'string'}, 'count': {'type': 'number'}, 'items': {'type': 'array'}, 'summary': {'type': 'string'}, 'category': {'type': 'string'}, 'poolSize': {'type': 'number'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_yes_no_wheel
Yes or no
Get a random yes or no decision, with an optional maybe. Returns the answer. Source: https://hopi.co.uk/yes-no-wheel/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'allowMaybe': {'type': 'boolean', 'default': False, 'description': "Include 'maybe' as a possible answer (default false)"}}}
Ausgabeschema
{'type': 'object', 'required': ['answer', 'source_url', 'summary'], 'properties': {'answer': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}}, 'additionalProperties': True}
hopi_zero_width_text_hider
Zero-width text hider
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/
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['mode'], 'properties': {'mode': {'enum': ['hide', 'reveal', 'clean'], 'type': 'string', 'description': 'hide, reveal or clean'}, 'text': {'type': 'string', 'description': 'Reveal and clean modes: the text to inspect'}, 'cover': {'type': 'string', 'description': 'Hide mode: the visible cover text that carries the message'}, 'secret': {'type': 'string', 'description': 'Hide mode: the message to hide'}, 'spread': {'type': 'boolean', 'description': 'Hide mode: distribute the invisible run evenly between words instead of placing it after the first word'}}}
Ausgabeschema
{'type': 'object', 'required': ['source_url', 'summary'], 'properties': {'output': {'type': 'string'}, 'summary': {'type': 'string'}, 'source_url': {'type': 'string', 'description': "The tool's page on hopi.co.uk (cite or open to check the figure)"}, 'invisibleCount': {'type': 'number'}}, 'additionalProperties': True}
Entfernt
hopi_totp_generator
23. September 2026 02:40
Entfernt
hopi_qr_code_reader
23. September 2026 02:40
Entfernt
hopi_public_key_message_encrypter
23. September 2026 02:40
Entfernt
hopi_jwt_generator
23. September 2026 02:40
Entfernt
hopi_image_steganography
23. September 2026 02:40
Entfernt
hopi_hmac_generator
23. September 2026 02:40
Entfernt
hopi_file_encrypter
23. September 2026 02:40
Geändert
hopi_zero_width_text_hider
23. September 2026 02:40
Geändert
hopi_yes_no_wheel
23. September 2026 02:40
Geändert
hopi_would_you_rather_generator
23. September 2026 02:40
Geändert
hopi_working_days_calculator
23. September 2026 02:40
Geändert
hopi_word_frequency_counter
23. September 2026 02:40
Geändert
hopi_word_counter
23. September 2026 02:40
Geändert
hopi_wheel_spinner
23. September 2026 02:40
Geändert
hopi_weight_converter
23. September 2026 02:40
Geändert
hopi_week_number
23. September 2026 02:40
Geändert
hopi_water_intake_calculator
23. September 2026 02:40
Geändert
hopi_volume_converter
23. September 2026 02:40
Geändert
hopi_vigenere_cipher
23. September 2026 02:40
Geändert
hopi_vat_calculator
23. September 2026 02:40
Geändert
hopi_uuid_generator
23. September 2026 02:40
Geändert
hopi_utm_link_generator
23. September 2026 02:40
Geändert
hopi_username_generator
23. September 2026 02:40
Geändert
hopi_user_agent_parser
23. September 2026 02:40
Geändert
hopi_url_parser
23. September 2026 02:40
Geändert
hopi_url_encoder
23. September 2026 02:40
Geändert
hopi_upside_down_text
23. September 2026 02:40
Geändert
hopi_unix_timestamp_converter
23. September 2026 02:40
Geändert
hopi_unit_price_calculator
23. September 2026 02:40
Geändert
hopi_unicode_inspector
23. September 2026 02:40