78trust / 100

Tanod Util

by tanod.dev in Developer tools

MCP serverPassing, checked 6 h ago

Developer utilities: encode, hash, HMAC, IDs, JSON, data conversion, cron, time zones, QR codes.

https://tanod.dev/mcp/util

Last 30 days

All checks passedSome failedAll failedNot checked

Status and outage history ยท Atom feed

Uptime
100%
Response time
398 ms typical, 823 ms slowest 5%
Last check
6 h ago
Next check
any minute now

How to call it

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "tanod-util": {
      "type": "http",
      "url": "https://tanod.dev/mcp/util"
    }
  }
}

34 tools

  • text_encode

    utilpeek: Encode or decode text: base64, hex, URL, punycode, JWT decode, ... Returns the text encoded or decoded with `codec`: base64, base64url, base32, hex, url (percent), html (entities), quoted_printable, rot13, punycode, idna or jwt. Decoders are strict (bad input is a 422 d

  • hash_text

    utilpeek: Hash text or bytes: sha256, keccak256, blake2b, md5, crc32, ... Returns hex digests of the text (as UTF-8) or base64 bytes you send: md5, sha1, sha256, sha512, sha3_256, blake2b (64-byte), keccak256 (Ethereum's Keccak-256, not sha3_256) and crc32. md5 and sha1 are for c

  • hmac_sign_verify

    utilpeek: Sign or verify an HMAC, including GitHub, Stripe and Slack webhook signatures. Returns the HMAC of a message under a shared key (sign), or whether a signature matches it in constant time (verify); handles GitHub (`sha256=` prefix accepted), Stripe `v1` (of `{t}.{raw bod

  • generate_ids

    utilpeek: Generate UUIDs or ULIDs. Returns 1-100 new identifiers: random UUID v4, time-ordered UUID v7 (RFC 9562) or ULIDs, optionally strictly increasing within the response (v7 and ULID; per response on purpose, so one caller cannot predict another's next ID). Input: optional `

  • generate_random

    utilpeek: Generate cryptographically strong random numbers, bytes, UUIDs, dice rolls, picks and shuffles. Returns values from the OS CSPRNG (Python `secrets`): integers (uniform, inclusive range), floats in [min, max), 1-1,024 random bytes (hex or base64), UUID v4, dice rolls suc

  • validate_json

    utilpeek: Validate JSON against a JSON Schema. Returns whether a JSON value is valid against a JSON Schema (draft from $schema, default 2020-12; 2019-09, 7, 6, 4 and 3 recognised), with up to 100 errors (instance path, schema path, message, validator) and the formats checked. Rem

  • convert_data

    utilpeek: Convert data between JSON, YAML, CSV, TOML and XML. Returns the document converted from json, yaml, csv, toml or xml to json, yaml, csv or toml. YAML uses libyaml's restricted loader (alias bombs refused); XML with DTDs or entities is a 422 xml_forbidden; lossy conversi

  • validate_identifier

    utilpeek: check the format and check digits of an identifier. Input: `kind` and `value`. Returns `valid`, `reason` (invalid_checksum, invalid_length, invalid_format, ... when not valid), `compact`, `formatted` and a kind-specific `detail` (an IBAN's country and bank code, an ISBN

  • parse_phone_number

    utilpeek: parse and format a phone number. Input: `number`. Returns `valid`, `possible`, `e164`, `international`, `national`, `rfc3966`, `country_calling_code`, `region`, `type` (mobile, fixed_line, toll_free, ...), `carrier`, `location` and `timezones`. A string that is not a ph

  • lookup_phone_prefix

    utilpeek: Look up a phone number prefix: country, line type and original network, with ambiguity. Returns look up a phone number prefix (0917, +63917, 0063917): country, line type, original network, time zones and E.164 prefix, with `ambiguous` and `candidates` when it spans netw

  • parse_user_agent

    utilpeek: parse a User-Agent string. Input: `user_agent`. Returns `browser`, `os` (family and version parts) and `device` (family, brand, model), `is_bot` with `bot_reason`, and `is_mobile`. A User-Agent is self-reported and easy to fake; `is_bot` is a heuristic (declared crawler

  • parse_url

    utilpeek: parse a URL. Input: `url`. Returns `scheme`, `host`, `port`, `effective_port`, `is_ip`, `host_ascii` / `host_unicode` (IDNA), `host_scripts` and `mixed_script_label` (homograph hints), `public_suffix`, `registrable_domain`, `subdomain` (and the ICANN-only `icann_*` view

  • cron_next_runs

    utilpeek: the next run times of a cron expression. Input: `expression`, optional `count`, `timezone` and `start`. Returns the normalized `expression`, `timezone`, `start`, `runs` and `exhausted`. Standard 5-field cron (minute hour day-of-month month day-of-week) or a macro (@dail

  • convert_time

    utilpeek: convert one instant between time zones. Input: `to_tz`, optional `time` and `from_tz`. Returns `utc`, `unix`, the `input` view (with `ambiguous` / `nonexistent`) and one `conversions` row per zone {timezone, time, date, weekday, utc_offset, abbreviation, dst}. Zones com

  • get_public_holidays

    utilpeek: public holidays of a country for a year. Input: `country`, `year`, optional `subdivision` and `language`. Returns `holidays` rows with `count`, `source` and `note`. An unsupported country, subdivision, language or year is a 422 naming the supported values (not charged).

  • count_or_add_business_days

    utilpeek: Count business days between two dates or add working days, skipping public holidays. Returns the business days between two dates (mode count; both ends included by default, like NETWORKDAYS) or the date N business days after or before a date (mode add, like WORKDAY), sk

  • convert_units

    utilpeek: Convert units of measurement: length, weight, temperature, volume, pressure, energy, data size. Returns a value converted between two units of one category, with the exact factor: length, mass, temperature (with offsets), volume (US and imperial), area, speed, pressure,

  • convert_color_check_contrast

    utilpeek: Convert a color between hex, RGB, HSL and OKLCH and check WCAG contrast. Returns a CSS color (hex, rgb(), hsl() or a CSS name) as hex, rgb, hsl, hsv, naive cmyk, OKLCH and WCAG relative luminance; with a `background`, the WCAG 2.x contrast ratio and AA / AAA pass or fai

  • check_wcag_contrast

    utilpeek: Check the WCAG contrast between a text color and a background color. Returns the WCAG 2.x contrast ratio of a `foreground` and a `background` CSS color, with AA / AAA pass or fail for normal text, large text and UI components (unrounded: #777 on white is 4.48:1 and fail

  • geocode

    utilpeek: offline geocoding over the GeoNames cities15000 table. Input: either `place` alone or `lat` and `lon` together. `place` matches cities of 15,000+ people offline ("City" or "City, CC" with an ISO country code or a US state code); no match is a 404 place_not_found (not ch

  • make_qr_code

    utilpeek: make a QR code image. Input: `data`, optional `format`, `scale`, `error` and `border`. Returns `svg` (text) or `data_base64` (PNG), or with `output` "url" a 24 h download link, plus `version`, `modules`, `width_px`, `height_px` and `bytes`. Data too long for a QR code a

  • make_barcode

    utilpeek: make a 1-D barcode image. Input: `data`, optional `type`, `format` and `text`. Returns `svg` (text, with width_mm/height_mm) or `data_base64` (PNG, with width_px/height_px; `output` "url": a 24 h link), plus `encoded` and `bytes`. A supplied check digit (ean13, ean8, up

  • read_qr_barcode

    imagepeek: Read every QR code and barcode in an image. Returns every code found: `type` (QR, EAN-13, EAN-8, UPC-A, UPC-E, Code128, Code39), decoded `text`, `kind` (url, wifi, vcard, payment_emv, ...), corner `points`, `bbox`; a QR holding an EMVCo payment payload (PIX, QR Ph, SGQ

  • peppol_lookup

    utilpeek: Check whether a company is registered on the Peppol e-invoicing network. Returns whether a Peppol participant ID (such as 0192:983887457) is registered on the Peppol e-invoicing network, from its SML DNS record; if so, its SMP URL and the document types the SMP lists (B

  • lint_x402_listing

    utilpeek: Lint an x402 listing, or check a seller's Bazaar coverage. Returns mode lint: a listing (PaymentRequired object or an endpoint's live 402) checked against CDP rules: problems, score, suggested description. Mode coverage (host or openapi_url): a seller's paid routes mark

  • build_ics_event

    utilpeek: Build an iCalendar file from JSON events. Returns 1-50 events (summary, start, end or duration, IANA timezone, all-day, location, description, url, organizer, attendees, rrule, uid) turned into RFC 5545 VCALENDAR text: CRLF lines folded at 75 octets, text escaped (comma

  • parse_ics

    utilpeek: Parse an iCalendar file into JSON events. Returns iCalendar text (Google, Outlook, Apple, up to 1 MB) unfolded and read into events: summary, start and end as ISO 8601 with offset, all-day flag, location, description, organizer, attendees, rrule, exdates, uid, status. W

  • expand_rrule

    utilpeek: Expand an iCalendar RRULE into dates. Returns an RFC 5545 RRULE and a start expanded into its occurrence list with python-dateutil in an IANA time zone: wall-clock times keep across DST changes. Up to 1,000 occurrences, an optional [from, to] window, extra until and exd

  • decode_jwt

    utilpeek: Decode a JWT without verifying it. Returns a compact JWT split into its header and payload JSON, with alg, typ, kid, whether a signature is present, and the standard claims: iat, nbf and exp as ISO 8601 UTC, plus expired and not_yet_valid against the server clock. Decod

  • verify_jwt

    utilpeek: Verify a JWT signature and claims. Returns valid true or false for a JWT checked with PyJWT against one key (HMAC secret, PEM public key or JWK Set), with a reason: bad signature, expired, wrong audience or issuer, algorithm not allowed. Algorithm none is refused; the k

  • decode_lightning_invoice

    chainpeek: Decode a Lightning invoice: amount, payee, payment hash and expiry. Returns a Lightning invoice's network, amount (msat, sat, BTC), creation time, expiry and expired flag, payee public key recovered from the signature, payment hash, description or hash, route hints and

  • decode_nostr_id

    chainpeek: Decode a Nostr npub, nprofile, note, nevent or naddr to hex; resolve NIP-05. Returns a Nostr NIP-19 identifier decoded to hex (public key or event id) and its TLV fields (relays, author, kind), or a NIP-05 name@domain resolved to a public key and relays, optionally che

  • get_gpu_prices

    utilpeek: Cloud GPU prices: cheapest H100, A100, L4 per GPU-hour on AWS, Azure and Google Cloud. Returns cheapest cloud GPU list prices per GPU-hour on AWS, Azure and Google Cloud, on-demand and spot, by chip, GPU memory, region and price ceiling; optionally the month a purchase

  • upload_file_get_link

    utilpeek: Upload a file and get a download link that expires in 24 hours. Returns stores a file you upload for up to 24 hours and returns a public download link (url, expires_at, bytes, sha256, content_type). Input: `filename` and `content_base64`, optional `ttl_hours`. Over HTTP

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
6 h agoPassed200811 ms
15 h agoPassed200398 ms
25 h agoPassed200812 ms
34 h agoPassed2001.2 s
43 h agoPassed200823 ms
2 days agoPassed200361 ms
3 days agoPassed200262 ms
3 days agoPassed200298 ms