{"serverId":"mcp-registry/io.github.zvmzaretsky/utility-belt","tools":[{"name":"convert","fixed":{"name":"convert","description":"FREE. Convert a value between units in the same dimension: length, mass, temperature, volume, data, time, area, speed, angle, pressure, energy. Deterministic. Args: value (number), from (unit), to (unit). e.g. {value:100, from:'c', to:'f'} or {value:1, from:'GiB', to:'MB'}. Different-dimension conversions 400.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["value","from","to"],"properties":{"to":{"type":"string","description":"Target unit in the same dimension."},"from":{"type":"string","description":"Source unit, e.g. c, km, GiB, gal, kg."},"value":{"type":"number","description":"Numeric value to convert."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Unit conversion"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":203,"tokensAfter":203},{"name":"cron","fixed":{"name":"cron","description":"PAID $0.001. Parse a 5- or 6-field cron expression and return the next N run times plus a plain-English description. Args: expression, timezone (IANA, default UTC), count (default 5), from (ISO, optional). Without payment returns the x402 challenge; pass x_payment to settle.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["expression"],"properties":{"from":{"type":"string","description":"Compute runs after this ISO datetime (default now)."},"count":{"type":"integer","description":"How many upcoming runs (1-100, default 5)."},"timezone":{"type":"string","description":"IANA timezone (default UTC)."},"x_payment":{"type":"string","description":"x402 payment payload (base64) for this PAID tool. If supplied it is forwarded as the X-PAYMENT header to settle the $0.001 call and return the real result instead of a 402 challenge. Omit to get the price challenge first."},"expression":{"type":"string","description":"Cron expression, e.g. '0 9 * * 1-5'."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Cron -> next N runs + description (paid $0.001)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":297,"tokensAfter":297},{"name":"currency","fixed":{"name":"currency","description":"PAID $0.001. Convert an amount between currencies at reference/mid-market rates from a keyless public central-bank feed (ECB), cached. Informational, not a dealable quote. Args: amount, from, to (ISO-4217, e.g. USD, EUR, JPY). Without payment returns the x402 challenge; pass x_payment to settle.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["amount","from","to"],"properties":{"to":{"type":"string","description":"Target ISO-4217 code, e.g. EUR."},"from":{"type":"string","description":"Source ISO-4217 code, e.g. USD."},"amount":{"type":"number","description":"Amount in the source currency."},"x_payment":{"type":"string","description":"x402 payment payload (base64) for this PAID tool. If supplied it is forwarded as the X-PAYMENT header to settle the $0.001 call and return the real result instead of a 402 challenge. Omit to get the price challenge first."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Live currency convert (paid $0.001)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":273,"tokensAfter":273},{"name":"jsonschema","fixed":{"name":"jsonschema","description":"PAID $0.001. Validate a value against a JSON Schema (draft 2020-12) and explain every error in plain English (which property, what was wrong, allowed values). Args: schema (object), data (any). Without payment returns the x402 challenge; pass x_payment to settle.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["schema"],"properties":{"data":{"description":"The value to validate against the schema.","type":"string"},"schema":{"type":"object","description":"A JSON Schema (draft 2020-12) object.","additionalProperties":{}},"x_payment":{"type":"string","description":"x402 payment payload (base64) for this PAID tool. If supplied it is forwarded as the X-PAYMENT header to settle the $0.001 call and return the real result instead of a 402 challenge. Omit to get the price challenge first."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"JSON-Schema (2020-12) validate + explain (paid $0.001)"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":249,"tokensAfter":253},{"name":"text","fixed":{"name":"text","description":"FREE. Text transforms. op='slugify' -> URL slug; op is one of camel|pascal|snake|kebab|constant|dot|path|title|sentence|upper|lower for case conversion; op='template' fills {{placeholders}} from `data`. Args: op, text (for slugify/case), or template + data (for template).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["op"],"properties":{"op":{"type":"string","description":"slugify | template | camel | pascal | snake | kebab | constant | dot | path | title | sentence | upper | lower"},"data":{"type":"object","description":"Object of values for op='template'.","additionalProperties":{}},"text":{"type":"string","description":"Input text for slugify/case ops."},"strict":{"type":"boolean","description":"template: throw on missing keys."},"template":{"type":"string","description":"Template string for op='template', with {{key}} placeholders."},"separator":{"type":"string","description":"Slug separator (default '-')."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Slugify / case-convert / template-fill"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":289,"tokensAfter":289},{"name":"timezone","fixed":{"name":"timezone","description":"PAID $0.001 (x402, USDC on Base). Convert an instant between IANA time zones with historically-correct DST. Returns converted datetime, UTC offsets, tz abbreviations, DST flags, and the offset difference. Args: datetime (ISO 8601 or epoch), from_zone, to_zone. Without payment returns the x402 challenge; pass x_payment to settle. Free teaser exists on the HTTP API at /v1/timezone/free.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["datetime","to_zone"],"properties":{"to_zone":{"type":"string","description":"Target IANA zone, e.g. Europe/London, Asia/Tokyo."},"datetime":{"type":["string","number"],"description":"Instant to convert: ISO 8601 (e.g. 2021-03-14T01:30:00) or epoch seconds/millis."},"from_zone":{"type":"string","description":"Source IANA zone (default UTC), e.g. America/New_York."},"x_payment":{"type":"string","description":"x402 payment payload (base64) for this PAID tool. If supplied it is forwarded as the X-PAYMENT header to settle the $0.001 call and return the real result instead of a 402 challenge. Omit to get the price challenge first."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Timezone / DST convert (paid $0.001)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":330,"tokensAfter":330}],"toolsChanged":6,"tokensSaved":0,"todo":[{"tool":"diff","params":["label_a","label_b"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}