Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Developer Utilities & Validators (Tanod)

by tanod.devversion 0.1.2i★ –iRuns in the cloud
Registry namedev.tanod/util

Install

Overview

Description from the maker (original English)

Cloud GPU prices per hour, plus developer helpers: hash, HMAC, JWT, IDs, JSON, cron, time zones.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs in the cloud
  • Transport: Streamable HTTP
  • Category: Developer tools

Install

Pick the AI app you use, then copy the settings.

Before you install

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Works in Claude on the web, desktop and mobile:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://tanod.dev/mcp/util

Run this in your terminal

claude mcp add --transport http util https://tanod.dev/mcp/util

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "util": {
      "url": "https://tanod.dev/mcp/util"
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

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

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

ChatGPT connects only to servers on the internet:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://tanod.dev/mcp/util

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Tool names and descriptions exactly as the server reported them on Nov 8, 2026. The maker wrote them, not us; we show them as plain text.

  • text_encode

    utilpeek: Encode or decode text: base64, hex, URL, punycode, JWT decode, ... For digests use hash_text; for a JWT's claims use decode_jwt. Returns the text encoded or decoded with `codec`: base64, base64url, base32, hex, url (percent), html (entities), quoted_printable, rot13, pu

  • hash_text

    utilpeek: Hash text or bytes: sha256, keccak256, blake2b, md5, crc32, ... For a keyed HMAC use hmac_sign_verify. Returns hex digests of the text (as UTF-8) or base64 bytes you send. md5 and sha1 are for checksums, not security. Send exactly one of text or base64 (else 422 invalid

  • hmac_sign_verify

    utilpeek: 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 body}`) and Slack `v0` (of `v0:{timestamp}:{raw body}`) webhook signatures. For pl

  • generate_ids

    utilpeek: Generate UUIDs or ULIDs. For numbers, bytes and picks use generate_random. 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 ca

  • generate_random

    utilpeek: Generate cryptographically strong random numbers, bytes, UUIDs, dice rolls, picks and shuffles. For UUIDs and ULIDs use generate_ids. Returns values from the OS CSPRNG (Python `secrets`): integers (uniform, inclusive range), floats in [min, max), 1-1,024 random bytes (h

  • validate_json

    utilpeek: Validate JSON against a JSON Schema. To pull JSON out of prose use extract_json_with_schema; to convert formats use convert_data. 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 u

  • convert_data

    utilpeek: Convert data between JSON, YAML, CSV, TOML and XML. To check JSON against a schema use validate_json. 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

  • validate_identifier

    utilpeek: check the format and check digits of an identifier. For a VIN's vehicle use decode_vin; for phone numbers use parse_phone_number. Returns `valid`, `reason` (invalid_checksum, invalid_length, invalid_format, ... when not valid), `compact`, `formatted` and a kind-specific

  • parse_phone_number

    utilpeek: parse and format a phone number. For a prefix's country and network use lookup_phone_prefix. A string that is not a phone number, or a national form without region, is a 422 (not charged). Offline numbering-plan check (phonenumbers, Apache-2.0): `valid` means the number

  • lookup_phone_prefix

    utilpeek: Look up a phone number prefix: country, line type and original network, with ambiguity. To parse a full number use parse_phone_number. Returns the country, line type, original network, time zones and E.164 form of the leading digits of a number (0917, +63917, 0063917),

  • parse_user_agent

    utilpeek: parse a User-Agent string. For known x402 monitors and indexers with call rates use identify_x402_client. A User-Agent is self-reported and easy to fake; `is_bot` is a heuristic (declared crawlers, HTTP libraries, headless browsers). Parsed with ua-parser and the uap-co

  • parse_url

    utilpeek: parse a URL. To fetch the page use render_page. The URL is parsed, never fetched. Public-suffix split from the Public Suffix List snapshot bundled with the parser (dated 2025-04-07; suffixes added later are not known), with and without the PSL private section; credentia

  • cron_next_runs

    utilpeek: the next run times of a cron expression. For iCalendar RRULEs use expand_rrule. Standard 5-field cron (minute hour day-of-month month day-of-week) or a macro (@daily, @hourly, ...); no seconds or year fields, no R/H/W. Day-of-month and day-of-week use Vixie OR semantics

  • convert_time

    utilpeek: convert one instant between time zones. For business days use count_or_add_business_days. Zones come from the pinned IANA tz database (tzdata package), not the host; a wall time in a DST gap or fold is flagged `nonexistent` / `ambiguous`; a time with an offset plus `fro

  • get_public_holidays

    utilpeek: public holidays of a country for a year. To count working days use count_or_add_business_days. An unsupported country, subdivision, language or year is a 422 naming the supported values (not charged). Typically under 0.1 s. Price: USD 0.001. Free: 10 utilpeek calls per

  • count_or_add_business_days

    utilpeek: Count business days between two dates or add working days, skipping public holidays. For the holiday list use get_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

  • convert_units

    utilpeek: Convert units of measurement: length, weight, temperature, volume, pressure, energy, data size. For numbers in words use text_numbers. Returns a value converted between two units of one category, with the exact factor: length, mass, temperature (with offsets), volume (U

  • convert_color_check_contrast

    utilpeek: Convert a color between hex, RGB, HSL and OKLCH and check WCAG contrast. For contrast alone use 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

  • check_wcag_contrast

    utilpeek: Check the WCAG contrast between a text color and a background color. To convert colour formats too use convert_color_check_contrast. 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 tex

  • geocode

    utilpeek: offline geocoding over the GeoNames cities15000 table. For places of a kind nearby use find_places_nearby. 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 st

  • make_qr_code

    utilpeek: make a QR code image. For 1-D barcodes use make_barcode; to read a code use read_qr_barcode. 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

  • make_barcode

    utilpeek: make a 1-D barcode image. For QR codes use make_qr_code; to find the product behind a number use lookup_barcode_product. 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

  • read_qr_barcode

    imagepeek: Read every QR code and barcode in an image. To make a QR code use make_qr_code; for other text use ocr_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 `point

  • peppol_lookup

    utilpeek: Check whether a company is registered on the Peppol e-invoicing network. For the legal entity use search_lei. 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 an

  • lint_x402_listing

    utilpeek: Lint an x402 listing, or check a seller's Bazaar coverage. For price position, preflight and demand too use x402_seller_report. Returns in mode lint the listing's problems against the CDP rules, a score and a suggested description; in mode coverage each paid route of a

  • check_header_budget

    utilpeek: Measure response headers against nginx, aiohttp, Node fetch and Python limits. Returns response-header byte sizes, total, Set-Cookie count and size, the five largest fields, and nginx/aiohttp/Node/Python pass/fail with limit overrides. One unpaid public-HTTPS GET, no re

  • build_ics_event

    utilpeek: Build an iCalendar file from JSON events. To read an .ics file use parse_ics. Returns RFC 5545 VCALENDAR text built from 1-50 events, CRLF lines folded at 75 octets and text escaped, with its base64, a data: URI and the uids. Input: `events`, optional `calendar_name`, d

  • parse_ics

    utilpeek: Parse an iCalendar file into JSON events. To write one use build_ics_event. Returns iCalendar text (Google, Outlook, Apple, up to 1 MB) unfolded and read into events. Windows zone names are mapped; at most 2,000 events (`truncated` when more). Input: `ics`, optional `ti

  • expand_rrule

    utilpeek: Expand an iCalendar RRULE into dates. For cron use cron_next_runs; to build an event use build_ics_event. 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

  • decode_jwt

    utilpeek: Decode a JWT without verifying it. To check the signature use verify_jwt. 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_ye

  • verify_jwt

    utilpeek: Verify a JWT signature and claims. To read the claims without a key use decode_jwt. 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, algori

  • decode_lightning_invoice

    chainpeek: Decode a Lightning invoice: amount, payee, payment hash and expiry. For EVM calldata use decode_calldata; for Nostr ids use decode_nostr_id. Returns a Lightning invoice's network, amount (msat, sat, BTC), creation time, expiry and expired flag, payee public key recover

  • decode_nostr_id

    chainpeek: Decode a Nostr npub, nprofile, note, nevent or naddr to hex; resolve NIP-05. For ENS names use resolve_ens. 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

  • get_gpu_prices

    utilpeek: GPU prices: cheapest H100, A100, L4 per GPU-hour on AWS, Azure, Google Cloud, Akash. Returns cheapest GPU prices per GPU-hour on AWS, Azure and Google Cloud (list prices) and Akash (marketplace bids with GPUs free), by chip, memory, minimum GPUs per cloud machine, regio

  • get_gpu_price_index

    utilpeek: GPU price index: daily H100, H200, A100 rental price per GPU-hour over time. Returns a GPU chip's daily rental price history: lowest and median on-demand list price, lowest spot, Akash median bid and free GPUs. List prices and marketplace bids, not executed trades. Days

  • upload_file_get_link

    utilpeek: Upload a file and get a download link that expires in 24 hours. Returns a public download link to a file you upload, valid for `ttl_hours` (default 24, the most); every call stores a new copy under a new link. Over HTTP the file may also be the raw request body or a mul

  • find_places_nearby

    utilpeek: Find places nearby: pharmacies, cafes, ATMs, shops and hospitals near a point, from OpenStreetMap. To resolve a city name use geocode. Returns places of one kind (pharmacy, cafe, supermarket, ATM, hospital, clinic, bicycle or hardware shop, fuel, EV charging and more) w

  • lookup_barcode_product

    utilpeek: Look up the product behind a barcode in open product databases, with conflicts flagged. To make a barcode use make_barcode; to read every code in an image use read_qr_barcode; to validate other identifiers use validate_identifier. Returns what a barcode is: check digit,

  • render_mermaid

    pdfpeek: Render Mermaid diagram code to an SVG or PNG image. Returns Mermaid diagram code drawn as an SVG or PNG file in an offline sandboxed browser: `format` svg | png, `theme` (default, dark, forest, neutral, base), `scale` 1-4 for PNG (default 2, sharp when zoomed). File base

  • search_datasets

    utilpeek: Find datasets on Hugging Face Hub only. Returns public datasets from Hugging Face Hub only, ranked by downloads: link, licence and size labels, downloads and last update. Optional licence, task, language and size filters. Licence tags are as published by dataset authors

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ! Caution

    Maker matches the repo

    The registry lists no source repo, so we cannot match the publisher (tanod.dev) to the code

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • ✓ Pass

    Endpoint responds

    Responded in 308 ms (HTTP 200)

  • – Not applicable

    Sign-in with OAuth

    No sign-in needed

  • ✓ Pass

    No hidden instructions in tool descriptions

    Read 40 tool descriptions and found no hidden instructions to the AI

Compared with others in Developer toolsi

  • More stars than 0% of the other 4934 servers in this category
  • Published to the registry more recently than 64% of the other 4934 servers in this category
  • Basic checks equal to or better than 24% of the other 4934 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Developer Utilities & Validators (Tanod) safe?

It passed 2 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.2) reached the registry 23 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: GitHub, Desktop Commander, Cloudflare MCP

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

GitHub

GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.

by githubWidely used★ 34.2KUpdated 5 days ago

Computer or cloud

Desktop Commander

MCP server for terminal commands, file operations, and process management

by wonderwhy-erWidely used↓ 709.6K/wk★ 10.2KUpdated 17 days ago

Runs on your computer

Cloudflare MCP

Cloudflare MCP servers

by cloudflareGrowing★ 4.4KUpdated 14 months ago

Runs in the cloud✓ mcp.cloudflare.com

README from the maker

No README found in the repo

Ask PopNx