Skip to content
Squatch MCP

Developer Utilities & Validators (Tanod)

dev.tanod/util

by dev.tanodยท v0.1.3Source: Official MCP Registry

MCP Bill of Materials

A machine-readable inventory of what this server exposes and depends on: tools with their effects, transports, packages, findings and provenance (schema version 1.0). Third-party text in it is escaped. Also available from the REST API at /api/v1/servers/cc628f82-ba3d-4d3e-8838-393876061155/mcbom.

MCP Bill of Materials

root{21}
schema_version: "1.0"
bom_format: "squatch-mcbom"
generator{3}
name: "squatch-mcp"
classifier_version: "rules_v1@2026-10-11.1"
unicode_version: "18.0.0"
server{7}
name: "dev.tanod/util"
title: "Developer Utilities & Validators (Tanod)"
description: "Cloud GPU prices per hour, plus developer helpers: hash, HMAC, JWT, IDs, JSON, cron, time zones."
version: "0.1.3"
homepage_url: "https://tanod.dev"
source: "official_registry"
upstream_status: "active"
publisher{4}
namespace: "dev.tanod"
display_name: "dev.tanod"
type: "registry_namespace"
status: "unclaimed"
organization: null
repository{5}
url: "https://github.com/tanod-labs/tanod-mcp"
provider: "github"
owner: "tanod-labs"
name: "tanod-mcp"
verified: false
packages[0]
transports[1]
0{5}
kind: "remote"
type: "streamable-http"
endpoint_url: "https://tanod.dev/mcp/util"
endpoint_host: "tanod.dev"
auth_type: "none"
auth{3}
type: "none"
authorization_servers[0]
scopes[0]
protocol{4}
era: "modern"
negotiated_version: "2026-07-28"
supported_versions[0]
transport_type: "streamable-http"
tools[40]
0{9}
name: "build_ics_event"
title: "utilpeek: build an .ics calendar file from 1-50 events given as JSON"
effect: "EXECUTE"
effect_confidence: 0.65
capabilities[4]
0{2}
capability: "ACCOUNT_MANAGEMENT"
confidence: 0.577
1{2}
capability: "CALENDAR"
confidence: 0.988
2{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.601
3{2}
capability: "FILE_ACCESS"
confidence: 0.735
risk_severity: "HIGH"
fingerprint: "84c70058cd049c9398cc0a3fe3c50b5141e329d763b30fcd058febd0db95c7f3"
input_schema_fingerprint: "80552579a1d1e9f3f3c26c1d6b55cd2abb3a975c54bd73622cbc362a32e0328d"
annotations{5}
title: "utilpeek: build an .ics calendar file from 1-50 events given as JSON"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
1{9}
name: "check_header_budget"
title: "utilpeek: measure HTTP response headers against nginx and common client limits"
effect: "READ"
effect_confidence: 0.798
capabilities[1]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.792
risk_severity: "INFO"
fingerprint: "159fe7b3d0a70943dfa6a4468f57829794edcdc46d7a2e33dad922e723a1dacb"
input_schema_fingerprint: "cbdf1f2398e13a56dca35624d869926a73a7d728e2a6d298121341585d6f881b"
annotations{5}
title: "utilpeek: measure HTTP response headers against nginx and common client limits"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
2{9}
name: "check_wcag_contrast"
title: "utilpeek: WCAG contrast check between a foreground and a background color"
effect: "READ"
effect_confidence: 0.762
capabilities[0]
risk_severity: "INFO"
fingerprint: "2982adf76a6fa8518f2dee1745fc4f322184da72a3880c3d2a0945524b17c928"
input_schema_fingerprint: "1c52a6619b27b8255074afabca39013ccdd41d59ebf79c5e153f01b7eeca6791"
annotations{5}
title: "utilpeek: WCAG contrast check between a foreground and a background color"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
3{9}
name: "convert_color_check_contrast"
title: "utilpeek: convert a color and check WCAG contrast"
effect: "READ"
effect_confidence: 0.762
capabilities[0]
risk_severity: "INFO"
fingerprint: "434c1f106b53ba814a5bc9e5c25a34a96d436974af813cb65467dbc83bc16780"
input_schema_fingerprint: "d2c15ab7e7c39f38706832b353adf30ef38b2e9a11ee910e68e59f7eb36c37ad"
annotations{5}
title: "utilpeek: convert a color and check WCAG contrast"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
4{9}
name: "convert_data"
title: "utilpeek: convert data between JSON, YAML, CSV, TOML and XML"
effect: "READ"
effect_confidence: 0.762
capabilities[2]
0{2}
capability: "EMAIL"
confidence: 0.73
1{2}
capability: "PERSONAL_DATA"
confidence: 0.6
risk_severity: "MEDIUM"
fingerprint: "ca875e39d96582b10f845b0bc724471128b675b977348f7f17fab3763b4e5a33"
input_schema_fingerprint: "1a80a71c65de401c4d1e40a672eb64cae80773f09f137b701574bc938c312ebd"
annotations{5}
title: "utilpeek: convert data between JSON, YAML, CSV, TOML and XML"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
5{9}
name: "convert_time"
title: "utilpeek: convert a time between IANA time zones"
effect: "READ"
effect_confidence: 0.72
capabilities[0]
risk_severity: "INFO"
fingerprint: "e4678e98c8f67d9439d754d6a4c05fae8b96360d7a8b882d639933624d29b05f"
input_schema_fingerprint: "a04c11af1829c8a66cb84bd688d159822b1aa21b00042e5fb36eeb2f76980094"
annotations{5}
title: "utilpeek: convert a time between IANA time zones"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
6{9}
name: "convert_units"
title: "utilpeek: convert units of measurement (exact factors)"
effect: "READ"
effect_confidence: 0.762
capabilities[2]
0{2}
capability: "EMAIL"
confidence: 0.73
1{2}
capability: "PERSONAL_DATA"
confidence: 0.6
risk_severity: "MEDIUM"
fingerprint: "13aab248a98aa2043f1a60f17d7bf622319c3ded05c51aa597ded9b23efe6986"
input_schema_fingerprint: "0e8f2b9e2f44d68028cd1b798211572e1010439502777a7b5e4205efcefe58e0"
annotations{5}
title: "utilpeek: convert units of measurement (exact factors)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
7{9}
name: "count_or_add_business_days"
title: "utilpeek: count business days or add working days (with public holidays)"
effect: "WRITE"
effect_confidence: 0.575
capabilities[0]
risk_severity: "LOW"
fingerprint: "80cac1edbd6c27632663d09c7a90bb57ba585df8171e16f4b5f3f0baef18c81f"
input_schema_fingerprint: "eb693d8970c75de555c43069ed67820df5cdb08595fdff7620bcbb19485f2b58"
annotations{5}
title: "utilpeek: count business days or add working days (with public holidays)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
8{9}
name: "cron_next_runs"
title: "utilpeek: list the next run times of a cron expression"
effect: "EXECUTE"
effect_confidence: 0.8
capabilities[0]
risk_severity: "CRITICAL"
fingerprint: "f23c0c7af08673edde0e8ff45f9ecda21bbcf5639e1c42786b2f26ca7b0f7a88"
input_schema_fingerprint: "f2e71d99e557a39f74a9f401be69a1c15fbf043a7aedfc8cc6a7781284e3c9ad"
annotations{5}
title: "utilpeek: list the next run times of a cron expression"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
9{9}
name: "decode_jwt"
title: "utilpeek: decode a JWT (header, payload, claims) without verifying it"
effect: "READ"
effect_confidence: 0.762
capabilities[1]
0{2}
capability: "AUTHENTICATION"
confidence: 0.922
risk_severity: "MEDIUM"
fingerprint: "d1b1cdc900bec20df48b231e232c8a828d95854bf871d24142cdb5fe31396e13"
input_schema_fingerprint: "4e100a9c4f23f5359c68a297cf3a385f03b1a720f2422dbf02c9837b852d4c52"
annotations{5}
title: "utilpeek: decode a JWT (header, payload, claims) without verifying it"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
10{9}
name: "decode_lightning_invoice"
title: "chainpeek: decode a Lightning BOLT11 invoice (amount, payee, payment hash, expiry, route hints)"
effect: "READ"
effect_confidence: 0.762
capabilities[1]
0{2}
capability: "PAYMENT"
confidence: 0.945
risk_severity: "LOW"
fingerprint: "5ab881ac754b3b40a19210e4b07561cdbea25a29bfd4cb8190f505d3bd4b0535"
input_schema_fingerprint: "c6830ff363d9cc171b85ce6432d3bce68bd1c7cba04957b96a09352537dabafb"
annotations{5}
title: "chainpeek: decode a Lightning BOLT11 invoice (amount, payee, payment hash, expiry, route hints)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
11{9}
name: "decode_nostr_id"
title: "chainpeek: decode a Nostr npub, note, nprofile, nevent or naddr to hex and fields, or resolve a NIP-05 address"
effect: "READ"
effect_confidence: 0.798
capabilities[0]
risk_severity: "INFO"
fingerprint: "e9163616aa6612b432e2bb9d0900afe21d37005f67dd9f119893e35f5ca65c30"
input_schema_fingerprint: "82eb59d5fee74f8f943d8f877b8d12d11e8446263096223b9b306b01bc10eb78"
annotations{5}
title: "chainpeek: decode a Nostr npub, note, nprofile, nevent or naddr to hex and fields, or resolve a NIP-05 address"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
12{9}
name: "expand_rrule"
title: "utilpeek: list the occurrences of a recurrence rule (RRULE) in a time zone"
effect: "READ"
effect_confidence: 0.32
capabilities[1]
0{2}
capability: "CALENDAR"
confidence: 0.971
risk_severity: "INFO"
fingerprint: "e4846ebead26da61d39113a51fd2efee68c2b6ebb0276484b72ae70b7f7024db"
input_schema_fingerprint: "b29cd3fc7efbe25aae22df95f267d8fd2d2d19d66dcd1811ad434767c8b7861e"
annotations{5}
title: "utilpeek: list the occurrences of a recurrence rule (RRULE) in a time zone"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
13{9}
name: "find_places_nearby"
title: "utilpeek: places of one kind near a point, nearest first, from OpenStreetMap"
effect: "READ"
effect_confidence: 0.762
capabilities[1]
0{2}
capability: "LOCATION"
confidence: 0.99
risk_severity: "LOW"
fingerprint: "d6564f3cfcb9eba61a565e9efccf57954a532f47c59ac0a00a172073446b972e"
input_schema_fingerprint: "4e5724322dcb873c60ca19337d97c14ce8814a67dd7eed93082d30538b6d253e"
annotations{5}
title: "utilpeek: places of one kind near a point, nearest first, from OpenStreetMap"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
14{9}
name: "generate_ids"
title: "utilpeek: generate UUIDs (v4, v7) or ULIDs"
effect: "READ"
effect_confidence: 0.762
capabilities[0]
risk_severity: "INFO"
fingerprint: "5b12e0b5cc49739a6d0253e213024c56ce6ececae8a52bc351ae638db5e8203b"
input_schema_fingerprint: "4fc68b43654a984c6b32c3dd450535c0cbe3c3b22cce45952c1a17c90d8ce8c5"
annotations{5}
title: "utilpeek: generate UUIDs (v4, v7) or ULIDs"
readOnlyHint: true
destructiveHint: false
idempotentHint: false
openWorldHint: false
15{9}
name: "generate_random"
title: "utilpeek: cryptographically strong random numbers, bytes, UUIDs, dice rolls, picks and shuffles"
effect: "READ"
effect_confidence: 0.762
capabilities[0]
risk_severity: "INFO"
fingerprint: "fa20ea190ac9eb12a4e41ccc5fb7c7674b1d826b8c217659fa34a0a147635ad1"
input_schema_fingerprint: "54a73e93a84e0fcadb00e1674b03191d5ee0387d945438a9abb1161b8972e0ca"
annotations{5}
title: "utilpeek: cryptographically strong random numbers, bytes, UUIDs, dice rolls, picks and shuffles"
readOnlyHint: true
destructiveHint: false
idempotentHint: false
openWorldHint: false
16{9}
name: "geocode"
title: "utilpeek: geocode a city name or reverse-geocode coordinates"
effect: "READ"
effect_confidence: 0.762
capabilities[1]
0{2}
capability: "LOCATION"
confidence: 0.99
risk_severity: "LOW"
fingerprint: "f900956361d8839925d0890bbcff86efddb616d7632d60e19a47c9c94c08c651"
input_schema_fingerprint: "f38c7d385dd48622c4fecf3e80c817b33e3d567e7c58101412235ff9dd25f771"
annotations{5}
title: "utilpeek: geocode a city name or reverse-geocode coordinates"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
17{9}
name: "get_gpu_price_index"
title: "utilpeek: daily GPU rental price history by chip: lowest and median list price, spot, Akash marketplace bid and free GPUs"
effect: "READ"
effect_confidence: 0.762
capabilities[2]
0{2}
capability: "EMAIL"
confidence: 0.73
1{2}
capability: "PERSONAL_DATA"
confidence: 0.6
risk_severity: "MEDIUM"
fingerprint: "85761a5554b7a56929ec3f812be6ab5539afe9a1503e92f28b777190377b7779"
input_schema_fingerprint: "505844d41fd0345160785d6a946a2e77fc0553c9eb06cffeebb9921a27e7dd25"
annotations{5}
title: "utilpeek: daily GPU rental price history by chip: lowest and median list price, spot, Akash marketplace bid and free GPUs"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
18{9}
name: "get_gpu_prices"
title: "utilpeek: cheapest GPU per hour on AWS, Azure, Google Cloud and Akash, on-demand, spot and marketplace bids, by chip, memory and region"
effect: "READ"
effect_confidence: 0.762
capabilities[1]
0{2}
capability: "CLOUD_INFRASTRUCTURE"
confidence: 0.99
risk_severity: "INFO"
fingerprint: "e7d6dffbccfc3305e81bc856ca585a68f428da53647894fb351d504d00a4713c"
input_schema_fingerprint: "7aeb21242765b64fc0dda2459de6b018ad3abf4a41d6c81f839097fc81fcb9eb"
annotations{5}
title: "utilpeek: cheapest GPU per hour on AWS, Azure, Google Cloud and Akash, on-demand, spot and marketplace bids, by chip, memory and region"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
19{9}
name: "get_public_holidays"
title: "utilpeek: list a country's public holidays for a year"
effect: "READ"
effect_confidence: 0.762
capabilities[0]
risk_severity: "INFO"
fingerprint: "9b8b5de3b5425d8b7d82aeac4e13e6b23d256159683af564756255d20ad241ff"
input_schema_fingerprint: "bcc26aa3bc8afe1974bd6328333dfda02c59d7f3ff585b542eb8df4a8fe237d1"
annotations{5}
title: "utilpeek: list a country's public holidays for a year"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
20{9}
name: "hash_text"
title: "utilpeek: hash text or bytes (SHA-2, SHA-3, BLAKE2b, Keccak-256, MD5, CRC-32)"
effect: "READ"
effect_confidence: 0.762
capabilities[0]
risk_severity: "INFO"
fingerprint: "2aada567a5365d9e6620f59bdf0abaee34dd1433f9047db792d0d952a90b4a5f"
input_schema_fingerprint: "e004e2b95f419b9fecad02f2a33a912e6814797213b6fbed2051fb88cfdf515c"
annotations{5}
title: "utilpeek: hash text or bytes (SHA-2, SHA-3, BLAKE2b, Keccak-256, MD5, CRC-32)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
21{9}
name: "hmac_sign_verify"
title: "utilpeek: sign or verify an HMAC (webhook signatures)"
effect: "READ"
effect_confidence: 0.66
capabilities[2]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.796
1{2}
capability: "MESSAGING"
confidence: 0.771
risk_severity: "MEDIUM"
fingerprint: "1fc866fc2e25d96d956421721ef146d60f4f52a5bba9055c5ed012710cb5c8d2"
input_schema_fingerprint: "444652af4b88eacf9651856928746f4a81c4e19f998406eb541b94f944326845"
annotations{5}
title: "utilpeek: sign or verify an HMAC (webhook signatures)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
22{9}
name: "lint_x402_listing"
title: "utilpeek: lint an x402 listing, or check a seller's routes against the Bazaar (mode coverage)"
effect: "READ"
effect_confidence: 0.827
capabilities[3]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.931
1{2}
capability: "LOCATION"
confidence: 0.53
2{2}
capability: "SECURITY_CONTROL"
confidence: 0.667
risk_severity: "LOW"
fingerprint: "ec636865bac307b015098e285b25d00525f5818994c1807b298aa35297c3b12b"
input_schema_fingerprint: "e1eab25fa805a1d6bdc5462b63804405fcf009ea2e11002bfa3b20b800472755"
annotations{5}
title: "utilpeek: lint an x402 listing, or check a seller's routes against the Bazaar (mode coverage)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
23{9}
name: "lookup_barcode_product"
title: "utilpeek: what product is this barcode? Check digit, GS1 prefix and four open product databases side by side"
effect: "EXECUTE"
effect_confidence: 0.6
capabilities[2]
0{2}
capability: "DATABASE_ACCESS"
confidence: 0.718
1{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.681
risk_severity: "CRITICAL"
fingerprint: "2d22fa2a0d372d1201cafaf12e71c6b35ef7b5676c5215e79cec8ef4ef147a38"
input_schema_fingerprint: "5ccb455e803046cfcc9b514e5ade3ee6ecc5760d0467c52fdef100d89385bdf7"
annotations{5}
title: "utilpeek: what product is this barcode? Check digit, GS1 prefix and four open product databases side by side"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
24{9}
name: "lookup_phone_prefix"
title: "utilpeek: look up a phone number prefix (country, line type, original network)"
effect: "READ"
effect_confidence: 0.762
capabilities[2]
0{2}
capability: "CLOUD_INFRASTRUCTURE"
confidence: 0.584
1{2}
capability: "PERSONAL_DATA"
confidence: 0.538
risk_severity: "LOW"
fingerprint: "df765d7e25bec62af669747e2b147189c36797e04a58dc9c5356ca1adbf7fcc3"
input_schema_fingerprint: "c358287feaf5c5143ecb2777353c3dde784b7297c78c4d2e08a73178333e5123"
annotations{5}
title: "utilpeek: look up a phone number prefix (country, line type, original network)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
25{9}
name: "make_barcode"
title: "utilpeek: make a 1-D barcode image (SVG or PNG)"
effect: "WRITE"
effect_confidence: 0.703
capabilities[1]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.666
risk_severity: "MEDIUM"
fingerprint: "a4cec26be178df431c8b89a405ccfb8ff7987a86c82b4581a2b3c97e329cc31e"
input_schema_fingerprint: "a184e116c93903b007a1f825d2afb641852e6214a2d0843cb08d070dd552c088"
annotations{5}
title: "utilpeek: make a 1-D barcode image (SVG or PNG)"
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
26{9}
name: "make_qr_code"
title: "utilpeek: make a QR code image (SVG or PNG)"
effect: "WRITE"
effect_confidence: 0.65
capabilities[1]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.556
risk_severity: "MEDIUM"
fingerprint: "20a664443904a8bf68eb61a295f59d9682ae90b64cca0c0910bba779a9f7df9a"
input_schema_fingerprint: "b7a62ac68b51ecd748e68072c4c9870ac7922a61954ac951042658ae0570a6a0"
annotations{5}
title: "utilpeek: make a QR code image (SVG or PNG)"
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
27{9}
name: "parse_ics"
title: "utilpeek: parse an .ics calendar file into JSON events"
effect: "READ"
effect_confidence: 0.762
capabilities[2]
0{2}
capability: "CALENDAR"
confidence: 0.96
1{2}
capability: "FILE_ACCESS"
confidence: 0.61
risk_severity: "INFO"
fingerprint: "025c9c2997e4d5cce46007e0974330b0043192e170f3df34f498135e7120eefb"
input_schema_fingerprint: "6e56d61c0d5abc1b6762f0c5d6508369fe0c405bde930959183dd6ff851f709c"
annotations{5}
title: "utilpeek: parse an .ics calendar file into JSON events"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
28{9}
name: "parse_phone_number"
title: "utilpeek: parse and format a phone number (numbering-plan check)"
effect: "READ"
effect_confidence: 0.762
capabilities[0]
risk_severity: "INFO"
fingerprint: "dfbd14632aded304daaf35b6bd2f502243841279bcf1cb3724ab80994ea48d0f"
input_schema_fingerprint: "7629eeee69a961ca6697a9b3a585d9df8b5e9a2ab8b6356acd6d24b5953aea52"
annotations{5}
title: "utilpeek: parse and format a phone number (numbering-plan check)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
29{9}
name: "parse_url"
title: "utilpeek: parse a URL (parts, IDNA, public suffix); never fetched"
effect: "READ"
effect_confidence: 0.762
capabilities[1]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.958
risk_severity: "INFO"
fingerprint: "98889c3a03fa5f222389bfa0780a316bbd206328ac256f911915a10e11949ce0"
input_schema_fingerprint: "991aa0861b5e31187d2c0db5a3fbdd87a78ea2e958fc7f85e61cea0cd95d75a8"
annotations{5}
title: "utilpeek: parse a URL (parts, IDNA, public suffix); never fetched"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
30{9}
name: "parse_user_agent"
title: "utilpeek: parse a User-Agent string (browser, OS, device, bot)"
effect: "READ"
effect_confidence: 0.762
capabilities[2]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.509
1{2}
capability: "PERSONAL_DATA"
confidence: 0.908
risk_severity: "LOW"
fingerprint: "b30efadc8731783c1b99df0f7b48c283c478cbb5c5a821468f03f0b62e0b9696"
input_schema_fingerprint: "df13862f6c542f9e5a94232b7114221335717c2b13be4f8f1d64ffdc12da6767"
annotations{5}
title: "utilpeek: parse a User-Agent string (browser, OS, device, bot)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
31{9}
name: "peppol_lookup"
title: "utilpeek: Peppol participant lookup (registered? SMP URL, accepted document types)"
effect: "READ"
effect_confidence: 0.66
capabilities[1]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.601
risk_severity: "INFO"
fingerprint: "2221119f6b5b0113a84a56b9554f25aaa014dd020f52fe0141cae00a2256e39a"
input_schema_fingerprint: "318ae5dde50077416891df1759293708bf7dd5d50a5584a553b207c6d4ce8b7d"
annotations{5}
title: "utilpeek: Peppol participant lookup (registered? SMP URL, accepted document types)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
32{9}
name: "read_qr_barcode"
title: "imagepeek: read QR codes and barcodes from an image"
effect: "READ"
effect_confidence: 0.762
capabilities[2]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.661
1{2}
capability: "PAYMENT"
confidence: 0.538
risk_severity: "LOW"
fingerprint: "c54d6f457618f919042cf9b2ee2ff49992fb5bbfacffaa8546d07cdc03b373d3"
input_schema_fingerprint: "7ecdb1a84d5b9e7bf15fd2833547505ad0ed87e1e6ab7b30a08345775909ebba"
annotations{5}
title: "imagepeek: read QR codes and barcodes from an image"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
33{9}
name: "render_mermaid"
title: "pdfpeek: render Mermaid diagram code to an SVG or PNG image"
effect: "READ"
effect_confidence: 0.703
capabilities[0]
risk_severity: "INFO"
fingerprint: "9a2669e98ac4526844997d00f86bd041ee600812a67a10a340253762c8aa9693"
input_schema_fingerprint: "62633d8ef82023c41bffb68cdc2949dcfb5942e0a492a57bd380d579ae29ec13"
annotations{5}
title: "pdfpeek: render Mermaid diagram code to an SVG or PNG image"
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
34{9}
name: "search_datasets"
title: "utilpeek: find datasets with licence, task, language and size filters (Hugging Face Hub only)"
effect: "READ"
effect_confidence: 0.798
capabilities[0]
risk_severity: "INFO"
fingerprint: "f2a9b0be76827e9fbaec4c279140b200900a6b282b139fd7e7f15c435f41c655"
input_schema_fingerprint: "ab9fd276db7907401c14fe57cb25afa557057d2798bcfab940788bb98a6e6179"
annotations{5}
title: "utilpeek: find datasets with licence, task, language and size filters (Hugging Face Hub only)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
35{9}
name: "text_encode"
title: "utilpeek: encode or decode text (base64, hex, URL, ..., JWT decode)"
effect: "WRITE"
effect_confidence: 0.703
capabilities[2]
0{2}
capability: "AUTHENTICATION"
confidence: 0.796
1{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.718
risk_severity: "MEDIUM"
fingerprint: "b89801b10cf10e9f1097c3a8946ad6a0506ae3e8e8e2a878b2a4f063a5bc6402"
input_schema_fingerprint: "7a9216e101c93426cf8e071278131d2b3f87b5b6bed80b1cbe870f39a6b2c944"
annotations{5}
title: "utilpeek: encode or decode text (base64, hex, URL, ..., JWT decode)"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
36{9}
name: "upload_file_get_link"
title: "utilpeek: upload a file and get a public link that expires within 24 hours"
effect: "READ"
effect_confidence: 0.575
capabilities[2]
0{2}
capability: "EXTERNAL_COMMUNICATION"
confidence: 0.8
1{2}
capability: "FILE_ACCESS"
confidence: 0.958
risk_severity: "INFO"
fingerprint: "564026851134655c1f498cab475d8ee750d9b22f2ef2c261f721e1d81d6dcc78"
input_schema_fingerprint: "5598e4702ab74082bc45427d7eaf07fabdc0375bb5db43e6c91745ae45026c3c"
annotations{5}
title: "utilpeek: upload a file and get a public link that expires within 24 hours"
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: true
37{9}
name: "validate_identifier"
title: "utilpeek: check the format and check digits of an IBAN, VAT, ISBN or other ID"
effect: "READ"
effect_confidence: 0.796
capabilities[0]
risk_severity: "INFO"
fingerprint: "45967b0164d445827a444465dec8b2070d469be55ddac84da0196aed85319f7d"
input_schema_fingerprint: "778ba39e488b74db50835ffd2f4bea5247511dc8543730fc0a88577e8ad01845"
annotations{5}
title: "utilpeek: check the format and check digits of an IBAN, VAT, ISBN or other ID"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
38{9}
name: "validate_json"
title: "utilpeek: validate JSON against a JSON Schema"
effect: "READ"
effect_confidence: 0.827
capabilities[0]
risk_severity: "INFO"
fingerprint: "e7c13f18184d3abfb2b1c31b6097b2907e197571bea65a739d69610c533e2a43"
input_schema_fingerprint: "1ffd06655a39e5350bf7a20a3d1a226a9202ab898f7e1f438a01b53b8d3a1429"
annotations{5}
title: "utilpeek: validate JSON against a JSON Schema"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
39{9}
name: "verify_jwt"
title: "utilpeek: verify a JWT signature and claims with a secret, a PEM public key or a JWK Set"
effect: "READ"
effect_confidence: 0.762
capabilities[2]
0{2}
capability: "AUTHENTICATION"
confidence: 0.973
1{2}
capability: "SECRETS"
confidence: 0.831
risk_severity: "HIGH"
fingerprint: "32c80b791b152b12662c67cad5cf970f4b96aeda89587b77c04dc1d92ed9feba"
input_schema_fingerprint: "79ed1634eefe3c70b282982f01a3980006666e3293bf09a4059a93ef4826d036"
annotations{5}
title: "utilpeek: verify a JWT signature and claims with a secret, a PEM public key or a JWK Set"
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
resources[0]
prompts[0]
extensions[0]
data{6}
privacy_completeness: "not_provided"
data_categories[0]
ai_training: null
retention_policy: null
processing_regions[0]
subprocessors[0]
external_integrations[1]
0{3}
host: "tanod.dev"
registrable_domain: "tanod.dev"
source: "transport"
findings[16]
0{6}
check_id: "SQ-SERVER-AUTH-NONE-WRITE"
category: "authentication"
severity: "HIGH"
title: "State-changing tools available without authentication"
subject_type: "server"
subject_name: null
1{6}
check_id: "SQ-TOOL-ANNOTATION-UNDERCLAIM"
category: "annotations"
severity: "MEDIUM"
title: "Annotations understate what the tool does"
subject_type: "tool"
subject_name: "build_ics_event"
2{6}
check_id: "SQ-TOOL-ANNOTATION-UNDERCLAIM"
category: "annotations"
severity: "LOW"
title: "Annotations understate what the tool does"
subject_type: "tool"
subject_name: "count_or_add_business_days"
3{6}
check_id: "SQ-TOOL-ANNOTATION-UNDERCLAIM"
category: "annotations"
severity: "HIGH"
title: "Annotations understate what the tool does"
subject_type: "tool"
subject_name: "cron_next_runs"
4{6}
check_id: "SQ-TOOL-ANNOTATION-UNDERCLAIM"
category: "annotations"
severity: "MEDIUM"
title: "Annotations understate what the tool does"
subject_type: "tool"
subject_name: "lookup_barcode_product"
5{6}
check_id: "SQ-TOOL-ANNOTATION-UNDERCLAIM"
category: "annotations"
severity: "LOW"
title: "Annotations understate what the tool does"
subject_type: "tool"
subject_name: "text_encode"
6{6}
check_id: "SQ-TOOL-CONCEALMENT"
category: "prompt_injection"
severity: "HIGH"
title: "Text asks the AI model to hide actions from the user"
subject_type: "tool"
subject_name: "convert_data"
7{6}
check_id: "SQ-TOOL-CONCEALMENT"
category: "prompt_injection"
severity: "MEDIUM"
title: "Text asks the AI model to hide actions from the user"
subject_type: "tool"
subject_name: "make_barcode"
8{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "decode_jwt"
9{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "verify_jwt"
10{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "verify_jwt"
11{6}
check_id: "SQ-TOOL-EXFIL-SHAPED-PARAM"
category: "schema"
severity: "INFO"
title: "Free-text parameter commonly used to collect conversation data"
subject_type: "tool"
subject_name: "build_ics_event"
12{6}
check_id: "SQ-TOOL-EXFIL-SHAPED-PARAM"
category: "schema"
severity: "INFO"
title: "Free-text parameter commonly used to collect conversation data"
subject_type: "tool"
subject_name: "build_ics_event"
13{6}
check_id: "SQ-TOOL-INJECTION-INSTRUCTIONS"
category: "prompt_injection"
severity: "LOW"
title: "Instructions addressed to the AI model"
subject_type: "tool"
subject_name: "parse_user_agent"
14{6}
check_id: "SQ-TOOL-OVERLY-BROAD"
category: "tool_design"
severity: "MEDIUM"
title: "Runs arbitrary code with open-world access"
subject_type: "tool"
subject_name: "cron_next_runs"
15{6}
check_id: "SQ-TOOL-OVERLY-BROAD"
category: "tool_design"
severity: "MEDIUM"
title: "Runs arbitrary code with open-world access"
subject_type: "tool"
subject_name: "lookup_barcode_product"
trust{9}
registry_namespace: "verified_upstream"
publisher_identity: "unverified"
organization: "unverified"
domain: "unverified"
repository: "unverified"
source_provenance: "unknown"
security_scan: "findings_detected"
privacy_transparency: "not_provided"
monitoring: "active"
provenance{4}
registry_name: "dev.tanod/util"
registry_content_sha256: "402d74d1a3a133c7d5e5ac7c4007dc76fdd6fcd324c071bf2437912ad6a8418e"
scan_snapshot_fingerprint: "c6a6600322f1eea70cd7e7b9a7c30929a33674e046e06672b890b32c5d1338c5"
scanner_version: "1.0.0"
timestamps{4}
generated_at: "2026-11-15T03:12:07.706Z"
observed_at: "2026-11-09T14:56:35.554+00:00"
registry_published_at: "2026-11-09T13:39:35.291802+00:00"
registry_updated_at: null