Agent Data Tools: Utilities
by Nutshell2000 · remote · no sign-in to list tools · v1.45.3 · published by GitHub user Nutshell2000
52 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.
52 tools: 1 can delete or cancel things, 2 do something that can't be undone, 37 change things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone2Claude Code: ask: see these tools
- Changes things37Claude Code: ask: see these tools
- Only reads12Claude Code: allow: see these tools
15 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http agent-data-tools-utilities https://agent-data-tools.revmesh2074.workers.dev/mcp/utilitiesFindings
Matches of fixed checks, with the text they matched.
- Warnjson_minify
The server marks "json_minify" read-only (readOnlyHint: true), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "remove": a word for removing or ending something.
- Warnjson_minify
The server marks "json_minify" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "remove": a word for removing or ending something.
- Warnjson_to_csv
The server marks "json_to_csv" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
- Warncsv_to_json
The server marks "csv_to_json" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
- Warnuuid
The server marks "uuid" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
- Warncase
The server marks "case" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
Show 9 more findingsShow fewer
- Warndate_add
The server marks "date_add" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "date_add" says "add": a word for a change.
- Warnunix
The server marks "unix" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
- Warnunits_convert
The server marks "units_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "units_convert" says "convert": a word for a change.
- Warnnumber_words
The server marks "number_words" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "write": a word for a change.
- Warnnumber_roman
The server marks "number_roman" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
- Warncolor
The server marks "color" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
- Warnjwt_decode
The description contains a 40-character base64 string. It decodes to text: "{"sub":"123","exp":1792281600}".
What this check looks forMatched text
description: "...iIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE3OTIyODE2MDB9.sig. Price $0.003/c..."
- Warnmarkdown_to_html
The server marks "markdown_to_html" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
- Warnrandom_password
The server marks "random_password" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
52 tools
Deletes or cancels 1Claude Code: deny
json_minifyRemove all unnecessary whitespace from JSON and report the size before and after.2 findings
Why it is in this group
- The description's first verb is "remove": a word for removing or ending something.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
Findings
- Warn
The server marks "json_minify" read-only (readOnlyHint: true), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "remove": a word for removing or ending something.
- Warn
The server marks "json_minify" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "remove": a word for removing or ending something.
Description, as the server wrote it Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ "a" : 1 }. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Minify JSON
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Can't be undone 2Claude Code: ask
caseConvert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "case" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed input like 'userID_value'. Use when renaming fields or generating code identifiers. Example: text=user profile id, to=camel. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Convert text case
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
units_convertConvert between units of length, mass, volume (incl.1 finding
Why it is in this group
- The name "units_convert" says "convert": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "units_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "units_convert" says "convert": a word for a change.
Description, as the server wrote it Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure. Example units: km, mi, lb, kg, floz, ml, mph, kn, acre, gib, kwh, psi. Use when exact conversions matter. Example: value=10, from=km, to=mi. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Convert units
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Changes things 37Claude Code: ask
base64_decodeDecode standard or URL-safe base64 to UTF-8 text.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ=. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Base64 decode
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
base64_encodeEncode UTF-8 text as standard base64, and also return the URL-safe variant.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Base64 encode
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
coinFlip one or more fair coins using a cryptographic random source.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Flip a coin
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
colorConvert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "color" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b) and hsl(h,s%,l%). Use for theming and design checks. Example: color=#0f6cbd. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Convert a colour
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
color_contrastWCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is readable. Example: fg=#767676, bg=#ffffff. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Colour contrast check (WCAG)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
cron_nextNext run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to check a schedule before deploying it. Example: expr=*/15 9-17 * * MON-FRI. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Next cron run times
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
csv_to_jsonConvert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "csv_to_json" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. Numbers stay as text unless numbers=true. Use to load spreadsheet exports into an agent. Example: text=name,age Ada,36. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: CSV to JSON
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
date_addAdd (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays).1 finding
Why it is in this group
- The name "date_add" says "add": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "date_add" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "date_add" says "add": a word for a change.
Description, as the server wrote it Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month ends are clamped (31 Jan + 1 month = 28/29 Feb). Use to compute due dates and expiries. Example: date=2026-01-31. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Add time to a date
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
date_infoWeekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use for calendar and reporting logic. Example: date=2026-10-18. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Facts about a date
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
diceRoll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier and the total. Use for tabletop games and simulations. Example: roll=2d6+3. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Roll dice
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
hashHash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Example: text=hello. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Hash text
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
hmacCompute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used only for this call and is not stored. Example: message=hello, key=secret. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: HMAC signature
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
html_to_textStrip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web content or emails to an LLM. Example: html=<h1>Hi</h1><p>A & B</p><ul><li>one</li></ul>. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: HTML to plain text
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
ip_cidrDetails of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP falls inside.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP falls inside. Use for firewall rules and allowlists. Example: cidr=192.168.1.0/24. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: CIDR calculator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
ip_infoClassify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reverse-DNS forms (IPv4)…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reverse-DNS forms (IPv4). Use to triage IPs in logs or allowlists. Example: ip=10.1.2.3. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: IP address facts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
json_formatFormat JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise it for diffs. Example: text={"b":2,"a":1}. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Pretty-print JSON
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
json_repairFix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True/False/None, and clo…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Fix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True/False/None, and closes unclosed brackets. Returns the repaired JSON and whether it now parses. Use when an LLM's JSON output fails to parse. Example: text=```json {name: 'Ada', tags: ['x',],} ```. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Repair broken JSON
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
json_to_csvConvert a JSON array of objects to CSV with a header row built from all keys.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "json_to_csv" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Example: text=[{"name":"Ada","age":36},{"name":"Alan","age":41}]. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: JSON array to CSV
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
jwt_decodeDecode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The description contains a 40-character base64 string. It decodes to text: "{"sub":"123","exp":1792281600}".
What this check looks forMatched text
description: "...iIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE3OTIyODE2MDB9.sig. Price $0.003/c..."
Description, as the server wrote it Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. The token is not stored. Do not use the result to trust a token. Use to debug auth flows. Example: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE3OTIyODE2MDB9.sig. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Decode a JWT
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
magic_8_ballAsk a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will it ship today?. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Magic 8-ball
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
markdown_to_htmlConvert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "markdown_to_html" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML. Raw HTML in the input is escaped, so the output is safe to embed. Use to publish agent-written Markdown on a web page. Example: markdown=# Title Some **bold** text and a [link](https://example.com).. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Markdown to HTML
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
mimeMIME (content) type for a file name or extension, e.g.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or serving files. Example: file=report.xlsx. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: MIME type for a file
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
number_romanConvert a number (1-3999) to Roman numerals, or Roman numerals back to a number.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "number_roman" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: number=2026. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Roman numerals
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
number_wordsWrite a whole number (up to trillions, negatives allowed) out in English words, e.g.1 finding
Why it is in this group
- The description's first verb is "write": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "number_words" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "write": a word for a change.
Description, as the server wrote it Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents when given a decimal amount. Use when amounts must be written out in full. Example: number=1234.5. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Number to English words
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
random_colorOne or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Random colour
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
random_numberOne or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Example: min=1. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Random number
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
random_passwordGenerate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source.1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "random_password" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing is stored or logged. Use when creating accounts or secrets. Example: length=20. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Generate a password
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
random_pickPick one or more items at random (without repeats) from a comma- or line-separated list.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Example: items=Ada,Alan,Grace,Linus. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Pick at random from a list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
random_shuffleShuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Example: items=1,2,3,4,5. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Shuffle a list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
random_teamsSplit a list of names into a given number of random, evenly sized teams.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,Tim. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Split people into teams
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
slugTurn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, URLs and IDs. Example: text=Crème Brûlée & Straße!. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Make a URL slug
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
unixConvert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp.1 finding
Why it is in this group
- The description's first verb is "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "unix" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the current time in both forms. Use to read timestamps in logs and APIs. Example: value=1792281600. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Unix timestamp converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
url_decodeDecode percent-encoded text, treating + as a space when plus=true (form encoding).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: URL decode
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
url_encodePercent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: URL encode
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
url_parseSplit a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query parameters or check a link's host. Example: url=https://example.com:8080/a/b?x=1&y=2#top. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Parse a URL
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
uuidGenerate 1 to 100 random version-4 UUIDs from a cryptographic random source.1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "uuid" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Generate UUIDs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
yes_noA fair random yes or no, with a cryptographic random source.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Yes or no
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 12Claude Code: allow
date_diffTime between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) in between.No findings
Why it is in this group
- The name "date_diff" says "diff": a word for reading.
Description, as the server wrote it Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) in between. Use for deadlines, ages and durations. Example: from=2026-01-01, to=2026-10-18. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Difference between two dates
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
echoReturns the message you send, with its length and the server time.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=hello. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Echo a message
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
http_statusName and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry.No findings
Why it is in this group
- The name "http_status" says "status": a word for reading.
Description, as the server wrote it Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handling API errors. Example: code=429. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: HTTP status code meaning
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
json_validateCheck whether text is valid JSON.No findings
Why it is in this group
- The name "json_validate" says "validate": a word for reading.
Description, as the server wrote it Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use before parsing an LLM's or an API's output. Example: text={"a":1}. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Validate JSON
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
pingA paid round-trip check: returns pong and the server time.No findings
Why it is in this group
- The name "ping" says "ping": a word for reading.
Description, as the server wrote it A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Ping
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
semverCompare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch versions of the first.No findings
Why it is in this group
- The description's first verb is "compare": a word for reading.
Description, as the server wrote it Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch versions of the first. Use to decide whether an upgrade is a major change. Example: a=1.10.0, b=1.9.3. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Compare semantic versions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
text_diffLine-by-line difference between two texts: each line marked as unchanged, removed or added, with counts.No findings
Why it is in this group
- The name "text_diff" says "diff": a word for reading.
Description, as the server wrote it Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a document, config or prompt. Example: a=one two three, b=one 2 three four. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Compare two texts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
text_extractFind all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated.No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
Description, as the server wrote it Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links out of scraped pages or messages. Example: text=Mail ada@example.com or see https://example.com #news @ada +46 70 123 45 67. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Extract emails, URLs and more
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
text_statsCount characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English text.No findings
Why it is in this group
- The description's first verb is "count": a word for reading.
Description, as the server wrote it Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English text. Use to check the length and readability of a draft. Example: text=The quick brown fox jumps over the lazy dog. It was not amused.. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Text statistics and readability
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
validate_ibanCheck an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four.No findings
Why it is in this group
- The name "validate_iban" says "validate": a word for reading.
Description, as the server wrote it Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or paying out. Example: iban=SE45 5000 0000 0583 9825 7466. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Validate an IBAN
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
validate_isbnCheck an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13.No findings
Why it is in this group
- The name "validate_isbn" says "validate": a word for reading.
Description, as the server wrote it Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example: isbn=0-306-40615-2. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Validate an ISBN
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
validate_luhnCheck whether a number passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to append.No findings
Why it is in this group
- The name "validate_luhn" says "validate": a word for reading.
Description, as the server wrote it Check whether a number passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to append. Only the format is checked; nothing is looked up. Use to catch typos in card or ID numbers. Example: number=79927398713. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.
Annotations the server declares
- title: Luhn check digit
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.45.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http agent-data-tools-utilities https://agent-data-tools.revmesh2074.workers.dev/mcp/utilitiesRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__agent-data-tools-utilities__json_validate",
"mcp__agent-data-tools-utilities__text_stats",
"mcp__agent-data-tools-utilities__text_extract",
"mcp__agent-data-tools-utilities__text_diff",
"mcp__agent-data-tools-utilities__date_diff",
"mcp__agent-data-tools-utilities__validate_iban",
"mcp__agent-data-tools-utilities__validate_isbn",
"mcp__agent-data-tools-utilities__validate_luhn",
"mcp__agent-data-tools-utilities__semver",
"mcp__agent-data-tools-utilities__http_status",
"mcp__agent-data-tools-utilities__echo",
"mcp__agent-data-tools-utilities__ping"
],
"ask": [
"mcp__agent-data-tools-utilities__json_format",
"mcp__agent-data-tools-utilities__json_repair",
"mcp__agent-data-tools-utilities__json_to_csv",
"mcp__agent-data-tools-utilities__csv_to_json",
"mcp__agent-data-tools-utilities__base64_encode",
"mcp__agent-data-tools-utilities__base64_decode",
"mcp__agent-data-tools-utilities__url_encode",
"mcp__agent-data-tools-utilities__url_decode",
"mcp__agent-data-tools-utilities__url_parse",
"mcp__agent-data-tools-utilities__hash",
"mcp__agent-data-tools-utilities__hmac",
"mcp__agent-data-tools-utilities__uuid",
"mcp__agent-data-tools-utilities__slug",
"mcp__agent-data-tools-utilities__case",
"mcp__agent-data-tools-utilities__cron_next",
"mcp__agent-data-tools-utilities__date_add",
"mcp__agent-data-tools-utilities__date_info",
"mcp__agent-data-tools-utilities__unix",
"mcp__agent-data-tools-utilities__units_convert",
"mcp__agent-data-tools-utilities__number_words",
"mcp__agent-data-tools-utilities__number_roman",
"mcp__agent-data-tools-utilities__color",
"mcp__agent-data-tools-utilities__color_contrast",
"mcp__agent-data-tools-utilities__ip_cidr",
"mcp__agent-data-tools-utilities__ip_info",
"mcp__agent-data-tools-utilities__jwt_decode",
"mcp__agent-data-tools-utilities__markdown_to_html",
"mcp__agent-data-tools-utilities__html_to_text",
"mcp__agent-data-tools-utilities__mime",
"mcp__agent-data-tools-utilities__coin",
"mcp__agent-data-tools-utilities__dice",
"mcp__agent-data-tools-utilities__random_number",
"mcp__agent-data-tools-utilities__random_pick",
"mcp__agent-data-tools-utilities__random_shuffle",
"mcp__agent-data-tools-utilities__random_teams",
"mcp__agent-data-tools-utilities__magic_8_ball",
"mcp__agent-data-tools-utilities__random_password",
"mcp__agent-data-tools-utilities__random_color",
"mcp__agent-data-tools-utilities__yes_no"
],
"deny": [
"mcp__agent-data-tools-utilities__json_minify"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as agent-data-tools-utilities. Review it before you use it.
