net. programmes/ developer-tools
by programmes.net · remote · no sign-in to list tools · v1.0.1 · published by net.programmes
65+ free in-browser developer tools (JSON, Base64, JWT, hash, regex…) callable over MCP.
87 tools: 1 do something that can't be undone, 74 change things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things74Claude Code: ask: see these tools
- Only reads12Claude Code: allow: see these tools
36 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http developer-tools https://programmes.net/mcpFindings
Matches of fixed checks, with the text they matched.
- Highenv-json
The title refers to ".env".
What this check looks forMatched text
title: ".env to JSON Converter"
- Highenv-json
The annotations title refers to ".env".
What this check looks forMatched text
annotations.title: ".env to JSON Converter"
- Highenv-json
The description refers to ".env".
What this check looks forMatched text
description: "...rnings. Operations: "to-json" — Parse a .env file into a JSON object (last duplicate..."
- Highenv-json
The input schema at properties.operation.description refers to ".env".
What this check looks forMatched text
inputSchema.properties.operation.description: "to-json — Parse a .env file into a JSON object (last duplicate..."
- Highenv-json
The input schema at properties.input.description refers to ".env".
What this check looks forMatched text
inputSchema.properties.input.description: "to-json: The .env file contents. to-env: A JSON object; n..."
- 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":false}; The description's first verb is "generate": a word for a change.
Show 30 more findingsShow fewer
- Warnpassword
The server marks "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":false}; The description's first verb is "generate": a word for a change.
- Warnrandom
The server marks "random" 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":false}; The description's first verb is "generate": a word for a change.
- Warntimestamp
The server marks "timestamp" 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":false}; 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnnumber-base
The server marks "number-base" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warncase
The server marks "case" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnlorem
The server marks "lorem" 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":false}; The description's first verb is "generate": a word for a change.
- Warnjson-csv
The server marks "json-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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnyaml-json
The server marks "yaml-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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnjson-ts
The server marks "json-ts" 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":true,"openWorldHint":false}; The description's first verb is "generate": a word for a change.
- Warngitignore
The server marks "gitignore" 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":true,"openWorldHint":false}; The description's first verb is "generate": a word for a change.
- Warnchmod
The server marks "chmod" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warncurl-converter
The server marks "curl-converter" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warncolor-palette
The server marks "color-palette" 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":true,"openWorldHint":false}; The description's first verb is "generate": a word for a change.
- Warntotp
The server marks "totp" 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":false}; The description's first verb is "generate": a word for a change.
- Warnulid
The server marks "ulid" 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":false}; The description's first verb is "generate": a word for a change.
- Warnascii
The server marks "ascii" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnroman-numeral
The server marks "roman-numeral" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnmarkdown-table
The server marks "markdown-table" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warncss-units
The server marks "css-units" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnjson-xml
The server marks "json-xml" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnduration
The server marks "duration" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnnanoid
The server marks "nanoid" 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":false}; The description's first verb is "generate": a word for a change.
- Warnenv-json
The server marks "env-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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warntoml-json
The server marks "toml-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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnhtml-jsx
The server marks "html-jsx" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnjsonc
The server marks "jsonc" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warndocker-compose
The server marks "docker-compose" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnpunycode
The server marks "punycode" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
- Warnhtml-markdown
The server marks "html-markdown" 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":true,"openWorldHint":false}; The description's first verb is "convert": 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.
87 tools
Can't be undone 1Claude Code: ask
css-unitsConvert a numeric value between CSS units (px, rem, em, pt, pc, %).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.options.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 "css-units" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert a numeric value between CSS units (px, rem, em, pt, pc, %). Operations: "convert" — Convert a numeric value from one CSS unit to another.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: CSS Unit Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Changes things 74Claude Code: ask
asciiConvert text to and from character codes in several bases.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 "ascii" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert text to and from character codes in several bases. Operations: "to-codes" — Convert text to character codes.; "from-codes" — Convert character codes back to text.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: ASCII Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
aspect-ratioReduce a ratio or resolution to lowest terms, name the nearest common ratio, solve the missing dimension and write CSS aspect-ratio.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 Reduce a ratio or resolution to lowest terms, name the nearest common ratio, solve the missing dimension and write CSS aspect-ratio. Operations: "analyze" — Reduce a ratio or size (16:9, 1920x1080, 2.39) and return presets, CSS and whole-pixel sizes.; "solve" — Given a ratio and one dimension, compute the other.; "fit" — Largest size at this ratio that fits inside (contain) or covers (cover) a box.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Aspect Ratio Calculator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
base-nEncode and decode UTF-8 text as Base32 (RFC 4648 + hex), Crockford Base32, Base58 (Bitcoin), Ascii85 or Z85.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 and decode UTF-8 text as Base32 (RFC 4648 + hex), Crockford Base32, Base58 (Bitcoin), Ascii85 or Z85. Operations: "encode" — Encode UTF-8 text in the chosen scheme.; "decode" — Decode to UTF-8 text (binary payloads are returned as hex).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Base32, Base58 & Base85 Encoder
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
base64Encode and decode text in Base64, Base64URL, Base32, Base58, Base85 and hex.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 and decode text in Base64, Base64URL, Base32, Base58, Base85 and hex. Operations: "encode" — Encode text into the chosen format.; "decode" — Decode text from the chosen format back to plain text.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Base64 Encoder & Decoder
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
bcryptHash and verify passwords with bcrypt.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 and verify passwords with bcrypt. Operations: "hash" — Hash a password with bcrypt at the given cost.; "verify" — Verify a plaintext password against a bcrypt hash.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: hash returns a different result on each call.
Annotations the server declares
- title: Bcrypt Generator & Verifier
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
caseConvert text between camelCase, snake_case, kebab-case and more.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 "case" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert text between camelCase, snake_case, kebab-case and more. Operations: "convert" — Convert text to a single chosen case.; "all" — Return every supported case transform at once.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Case Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
char-inspectorBreak a string into per-character Unicode details.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 Break a string into per-character Unicode details. Operations: "inspect" — Inspect each character of a string (code point, category, bytes).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Unicode Character Inspector
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
chmodConvert between octal and symbolic Unix file permissions.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 "chmod" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert between octal and symbolic Unix file permissions. Operations: "octal-to-symbolic" — Convert octal permissions (e.g. "755") to a symbolic string and description.; "symbolic-to-octal" — Convert a symbolic permission string (e.g. "rwxr-xr-x") to octal.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: chmod Calculator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
cidrParse a CIDR block into its network, broadcast and host range.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 Parse a CIDR block into its network, broadcast and host range. Operations: "calculate" — Calculate the network, broadcast, mask and host range for a CIDR block.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: IP Subnet Calculator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
colorConvert colors between HEX, RGB, HSL, HSV and CMYK.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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert colors between HEX, RGB, HSL, HSV and CMYK. Operations: "convert" — Convert a HEX color to every supported color space.; "palette" — Generate a color harmony palette from a base color.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Color Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
color-paletteGenerate harmony, shade and tint palettes from a base HEX color.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 "color-palette" 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":true,"openWorldHint":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate harmony, shade and tint palettes from a base HEX color. Operations: "generate" — Generate harmony, shade and tint palettes from a base HEX color.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Color Palette Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
compressgzip, deflate (zlib) or raw-deflate text to Base64 or hex, and decompress it back.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 gzip, deflate (zlib) or raw-deflate text to Base64 or hex, and decompress it back. Operations: "compress" — Compress UTF-8 text with gzip, deflate (zlib) or raw deflate.; "decompress" — Decompress Base64 or hex gzip/deflate data back to text (output up to 256 KB).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Gzip & Deflate Compressor
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
contrastCheck WCAG contrast between a foreground and background color.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 Check WCAG contrast between a foreground and background color. Operations: "check" — Compute the contrast ratio and WCAG pass/fail for a color pair.; "best-text" — Pick black or white text for the best contrast on a background.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Color Contrast Checker
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
cspParse a Content-Security-Policy, explain each directive and flag weaknesses (unsafe-inline, wildcards, missing object-src/base-uri/frame-ancestors…).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 Parse a Content-Security-Policy, explain each directive and flag weaknesses (unsafe-inline, wildcards, missing object-src/base-uri/frame-ancestors…). Operations: "evaluate" — Parse a CSP header and return its directives and findings by severity.; "harden" — Add the low-risk directives a policy is missing (object-src 'none', base-uri, frame-ancestors, form-action) and return ready-to-paste header, meta, nginx and Apache forms.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: CSP Evaluator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
css-minifyMinify or beautify CSS.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 Minify or beautify CSS. Operations: "minify" — Minify CSS (strip comments and whitespace).; "beautify" — Beautify CSS (one declaration per line, indented).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: CSS Minifier & Beautifier
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
curl-converterConvert a curl command into fetch / Python / Node snippets.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 "curl-converter" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert a curl command into fetch / Python / Node snippets. Operations: "convert" — Parse a curl command and generate code snippets.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: cURL Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
data-sizeParse a data size and convert it to bytes plus decimal and binary units.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 Parse a data size and convert it to bytes plus decimal and binary units. Operations: "convert" — Parse a data size and convert it to bytes, decimal and binary units.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Data Size Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
date-calcDays, months and business days between dates, add or subtract durations, ISO week numbers and day of year, and DST-aware elapsed time between local times.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 Days, months and business days between dates, add or subtract durations, ISO week numbers and day of year, and DST-aware elapsed time between local times. Operations: "diff" — Difference between two dates in years/months/days, total days, weeks and business days.; "add" — Add or subtract a duration ("1y 2m", "-90d", "P2W") or a number of business days.; "info" — Weekday, day of year, ISO week, quarter and leap year for a date (plus Unix time of local midnight).; "elapsed" — Exact elapsed time between two local date-times, following DST in each time zone.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Date Calculator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
docker-composeConvert docker run commands to a Docker Compose file and Compose services back.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 "docker-compose" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert docker run commands to a Docker Compose file and Compose services back. Operations: "to-compose" — Convert one or more docker run commands to Compose services (ports, volumes, env, name, restart, network, command).; "to-run" — Convert a Compose file (or one service) to a docker run command per service.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: docker run to Compose Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
durationConvert between ISO 8601 durations, seconds, clock time and human text like "1h30m" or "90 minutes".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 "duration" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert between ISO 8601 durations, seconds, clock time and human text like "1h30m" or "90 minutes". Operations: "convert" — Parse any duration (ISO 8601, 1h30m, 90 minutes, 1:30:00, seconds) into every representation.; "to-iso" — Convert any duration to a canonical ISO 8601 duration string.; "humanize" — Render a duration as words ("1 hour 30 minutes") or compact text ("1h 30m").. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Duration Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
env-jsonConvert dotenv files to JSON and back, with dotenv-compatible quoting, escapes, comments, export prefixes and multi-line values, plus validation warnings.6 findings
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
- High
The title refers to ".env".
What this check looks forMatched text
title: ".env to JSON Converter"
- High
The annotations title refers to ".env".
What this check looks forMatched text
annotations.title: ".env to JSON Converter"
- High
The description refers to ".env".
What this check looks forMatched text
description: "...rnings. Operations: "to-json" — Parse a .env file into a JSON object (last duplicate..."
- High
The input schema at properties.operation.description refers to ".env".
What this check looks forMatched text
inputSchema.properties.operation.description: "to-json — Parse a .env file into a JSON object (last duplicate..."
- High
The input schema at properties.input.description refers to ".env".
What this check looks forMatched text
inputSchema.properties.input.description: "to-json: The .env file contents. to-env: A JSON object; n..."
- Warn
The server marks "env-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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert dotenv files to JSON and back, with dotenv-compatible quoting, escapes, comments, export prefixes and multi-line values, plus validation warnings. Operations: "to-json" — Parse a .env file into a JSON object (last duplicate wins).; "to-env" — Write a JSON object as .env lines, quoting values only where needed.; "validate" — Lint a .env file: duplicates, invalid names, unterminated quotes, stray # comments.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: .env to JSON Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
gitignoreGenerate a combined .gitignore from template keys.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 "gitignore" 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":true,"openWorldHint":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate a combined .gitignore from template keys. Operations: "generate" — Combine one or more template keys into a .gitignore.; "templates" — List the available .gitignore template keys.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: .gitignore Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
glob-testerTest .gitignore or glob patterns against a list of paths and see which rule matched each one.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 Test .gitignore or glob patterns against a list of paths and see which rule matched each one. Operations: "test" — Match paths against gitignore rules (negation, anchoring, **, directory-only) or plain globs.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Glob & .gitignore Tester
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
hashCompute MD5, SHA-1/256/384/512, CRC32 and HMAC digests.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 MD5, SHA-1/256/384/512, CRC32 and HMAC digests. Operations: "hash" — Hash text with the chosen algorithm.; "hmac" — Compute an HMAC digest (SHA algorithms only).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Hash Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
hmacSign a message with HMAC using a secret key and SHA-2 algorithm.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 Sign a message with HMAC using a secret key and SHA-2 algorithm. Operations: "sign" — Compute an HMAC signature for a message.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: HMAC Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
htmlFormat, minify and validate HTML.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, minify and validate HTML. Operations: "format" — Pretty-print HTML.; "minify" — Minify HTML (strip comments and collapse whitespace).; "validate" — Check HTML for unclosed/mismatched tags.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: HTML Formatter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
html-entityEncode and decode HTML entities (named, decimal, hex).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 and decode HTML entities (named, decimal, hex). Operations: "encode" — Encode text into HTML entities.; "decode" — Decode HTML entities back to plain text.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: HTML Entity Encoder & Decoder
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
html-jsxConvert HTML or SVG markup to React JSX: className/htmlFor, camelCased SVG attributes, style objects, self-closing tags, JSX comments.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 "html-jsx" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert HTML or SVG markup to React JSX: className/htmlFor, camelCased SVG attributes, style objects, self-closing tags, JSX comments. Operations: "convert" — Convert an HTML fragment or document to JSX, with warnings for anything to review.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: HTML to JSX Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
html-markdownConvert HTML to Markdown (CommonMark + GitHub tables), dropping scripts and styles.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 "html-markdown" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert HTML to Markdown (CommonMark + GitHub tables), dropping scripts and styles. Operations: "convert" — Convert an HTML page or fragment to Markdown: headings, lists, links, images, code blocks, tables and blockquotes.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: HTML to Markdown
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
id-decoderDecode IDs: Snowflake, MongoDB ObjectId, KSUID, TypeID, ULID, UUID and CUID2 — timestamp, machine fields and randomness.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 IDs: Snowflake, MongoDB ObjectId, KSUID, TypeID, ULID, UUID and CUID2 — timestamp, machine fields and randomness. Operations: "decode" — Detect each ID's format and take it apart (one ID per line, up to 200).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: ID Decoder
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
image-base64Build and parse base64 data URIs and embed snippets.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 Build and parse base64 data URIs and embed snippets. Operations: "build-snippets" — Build HTML/CSS/Markdown snippets from an existing data URI.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Image to Base64
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
ipv6Expand and compress IPv6 addresses (RFC 5952), classify them (link-local, ULA, multicast, documentation…), extract embedded IPv4, do prefix and range maths, and build ip6.arpa name…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 Expand and compress IPv6 addresses (RFC 5952), classify them (link-local, ULA, multicast, documentation…), extract embedded IPv4, do prefix and range maths, and build ip6.arpa names. Operations: "analyze" — Analyse an address, prefix or range: canonical and expanded forms, type, embedded IPv4, network bounds, reverse DNS.; "compress" — Rewrite each address in its RFC 5952 canonical (shortest) form.; "expand" — Rewrite each address with all eight 4-digit groups.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: IPv6 Address Tool
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
jsonFormat, minify, validate and convert JSON.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, minify, validate and convert JSON. Operations: "format" — Pretty-print JSON with a configurable indent.; "minify" — Strip all insignificant whitespace from JSON.; "validate" — Check whether the input is valid JSON, reporting the error location.; "repair" — Best-effort repair of common JSON mistakes (trailing commas, single quotes, unquoted keys).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JSON Formatter & Validator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
json-csvConvert between JSON and CSV.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-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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert between JSON and CSV. Operations: "json-to-csv" — Convert a JSON array/object to CSV.; "csv-to-json" — Convert CSV to a JSON array.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JSON / CSV Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
json-schemaInfer a draft-07 JSON Schema from sample JSON.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 Infer a draft-07 JSON Schema from sample JSON. Operations: "generate" — Infer a draft-07 JSON Schema from sample JSON. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JSON Schema Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
json-tsGenerate TypeScript type declarations from a JSON sample.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 "json-ts" 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":true,"openWorldHint":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate TypeScript type declarations from a JSON sample. Operations: "generate" — Infer TypeScript interfaces/types from JSON.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JSON to TypeScript
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
json-xmlConvert between JSON and XML.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-xml" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert between JSON and XML. Operations: "to-xml" — Convert JSON to XML.; "to-json" — Convert XML to JSON.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JSON to XML Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
jsoncConvert JSON5, JSONC (tsconfig, VS Code settings) and relaxed JSON to strict JSON, or reformat them with comments kept, reporting every non-JSON feature used.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 "jsonc" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert JSON5, JSONC (tsconfig, VS Code settings) and relaxed JSON to strict JSON, or reformat them with comments kept, reporting every non-JSON feature used. Operations: "to-json" — Convert JSON5 / JSONC to strict RFC 8259 JSON.; "format" — Re-print JSON / JSON5 / JSONC tidily as JSONC or JSON5, keeping comments.; "validate" — Check whether text is valid JSON5 and list which non-JSON features it uses.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JSON5 / JSONC to JSON
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
jwtDecode JWT header and payload (no signature verification).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 JWT header and payload (no signature verification). Operations: "decode" — Decode a JWT into its header, payload and signature.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JWT Decoder
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
jwt-encodeSign a JSON payload into a JWT with an HMAC secret.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 Sign a JSON payload into a JWT with an HMAC secret. Operations: "sign" — Sign a JSON payload into a JWT using an HMAC secret.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JWT Encoder & Signer
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
loremGenerate placeholder text in several styles.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 "lorem" 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":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate placeholder text in several styles. Operations: "generate" — Generate lorem ipsum (or themed) placeholder text.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
Annotations the server declares
- title: Lorem Ipsum Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
markdownRender Markdown to HTML, build a TOC and compute statistics.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 Render Markdown to HTML, build a TOC and compute statistics. Operations: "render" — Render GitHub-flavored Markdown to sanitized HTML.; "toc" — Extract a table of contents from Markdown headers.; "stats" — Compute document statistics for Markdown/plain text.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Markdown Preview
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
markdown-tableConvert CSV or TSV rows into a Markdown table.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-table" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert CSV or TSV rows into a Markdown table. Operations: "generate" — Build a Markdown table from delimited rows.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Markdown Table Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mimeLook up MIME types by file extension or MIME type.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 Look up MIME types by file extension or MIME type. Operations: "lookup" — Search MIME types by extension or MIME type.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: MIME Type Lookup
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
morse-codeTranslate text to and from Morse code.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 Translate text to and from Morse code. Operations: "encode" — Convert text to Morse code.; "decode" — Convert Morse code to text.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Morse Code Translator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
nanoidGenerate NanoIDs or custom-alphabet random IDs with crypto randomness, plus a collision-probability estimate.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 "nanoid" 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":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate NanoIDs or custom-alphabet random IDs with crypto randomness, plus a collision-probability estimate. Operations: "generate" — Generate one or more random IDs (default: 21-char URL-safe NanoID).; "collision" — Estimate how long until a 1% collision chance for an alphabet size, ID length and rate.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
Annotations the server declares
- title: NanoID Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
number-baseConvert numbers between binary, octal, decimal and hex.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-base" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert numbers between binary, octal, decimal and hex. Operations: "convert" — Convert a number from one base to all supported bases.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Number Base Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
passwordGenerate strong random passwords and estimate their strength.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 "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":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate strong random passwords and estimate their strength. Operations: "generate" — Generate a cryptographically random password.; "strength" — Estimate the entropy and strength bucket of a password.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
Annotations the server declares
- title: Password Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
punycodeConvert internationalised domain names to and from Punycode (RFC 3492): bücher.example ⇄ xn--bcher-kva.example.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 "punycode" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert internationalised domain names to and from Punycode (RFC 3492): bücher.example ⇄ xn--bcher-kva.example. Operations: "to-ascii" — Encode each Unicode label as an xn-- label (one domain, email or URL per line; labels are NFC-normalised and lowercased).; "to-unicode" — Decode each xn-- label back to Unicode (one domain, email or URL per line).; "encode" — Encode one string with the bare RFC 3492 algorithm (no xn-- prefix, case kept).; "decode" — Decode one bare Punycode string (no xn-- prefix) with the RFC 3492 algorithm.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Punycode & IDN Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
randomGenerate cryptographically secure random strings.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" 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":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate cryptographically secure random strings. Operations: "generate" — Generate a secure random string from a chosen pattern.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
Annotations the server declares
- title: Random String Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
regexTest a regex against a string and apply replacements.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 Test a regex against a string and apply replacements. Operations: "test" — Find all matches of a regex pattern in a test string.; "replace" — Replace regex matches in a string.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Regex Tester
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
robots-txtBuild robots.txt that treats search engines, AI answer bots and AI training crawlers separately; validate llms.txt.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 Build robots.txt that treats search engines, AI answer bots and AI training crawlers separately; validate llms.txt. Operations: "build" — Build robots.txt: allow or block search engines, AI answer engines/assistants and AI training crawlers (named), with Content-Signal and Sitemap lines.; "validate-llms" — Check an llms.txt file against llmstxt.org: one H1, a > summary, H2 sections of Markdown link lists.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: robots.txt Builder & llms.txt Validator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
roman-numeralConvert between integers and Roman numerals.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 "roman-numeral" 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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert between integers and Roman numerals. Operations: "to-roman" — Convert an integer to a Roman numeral.; "from-roman" — Convert a Roman numeral to an integer.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Roman Numeral Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
saml-decoderDecode a SAMLRequest or SAMLResponse (Base64, or deflate + Base64) and summarise it.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 a SAMLRequest or SAMLResponse (Base64, or deflate + Base64) and summarise it. Signatures are not verified. Operations: "decode" — Decode a SAML message and return its issuer, status, NameID, audience, conditions, validity window, attributes and pretty-printed XML. Signatures are reported, never verified.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: decode returns a different result on each call.
Annotations the server declares
- title: SAML Decoder
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
security-headersGrade pasted HTTP response headers (HSTS, CSP, nosniff, framing, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP, cookies) A+ to F.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 Grade pasted HTTP response headers (HSTS, CSP, nosniff, framing, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP, cookies) A+ to F. Parses text only; never fetches a URL. Operations: "grade" — Grade a raw header block and explain each check.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Security Headers Checker
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
semverParse, compare, sort and bump Semantic Versions, and test versions against npm-style ranges.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 Parse, compare, sort and bump Semantic Versions, and test versions against npm-style ranges. Operations: "parse" — Parse a SemVer 2.0.0 version into its components.; "compare" — Compare two versions by SemVer precedence (-1, 0 or 1).; "satisfies" — Test whether a version satisfies a range (^, ~, x, hyphen, ||).; "max-satisfying" — Find the highest and lowest versions in a list that satisfy a range.; "explain-range" — Desugar a range into plain comparators (e.g. ^1.2.3 → >=1.2.3 <2.0.0-0).; "sort" — Sort versions by SemVer precedence; invalid entries are listed separately.; "bump" — Increment a version like `npm version <release>`.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: SemVer Calculator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
slugifyTurn arbitrary text into a clean, URL-safe slug.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 arbitrary text into a clean, URL-safe slug. Operations: "slugify" — Generate a URL slug from text.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Slugify
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sort-linesSort, reverse, deduplicate and clean up lines of 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 Sort, reverse, deduplicate and clean up lines of text. Operations: "process" — Sort, deduplicate and clean lines of text.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Sort & Dedupe Lines
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
sqlFormat and minify SQL.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 and minify SQL. Operations: "beautify" — Beautify SQL with newlines before clauses.; "minify" — Minify SQL to a single line.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: SQL Formatter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
string-escapeEscape and unescape strings for JSON, JS, HTML, URL and regex.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 Escape and unescape strings for JSON, JS, HTML, URL and regex. Operations: "escape" — Escape a string for the chosen context.; "unescape" — Unescape a string from the chosen context.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: String Escape & Unescape
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
svg-data-uriMinify an SVG and encode it as a compact percent-encoded (or base64) data URI, with background-image and mask-image CSS.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 Minify an SVG and encode it as a compact percent-encoded (or base64) data URI, with background-image and mask-image CSS. Operations: "encode" — Optimise an SVG and return url-encoded and base64 data URIs, sizes and CSS snippets.; "decode" — Decode a data:image/svg+xml URI (percent-encoded or base64) back to SVG markup.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: SVG to Data URI
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
timestampConvert and inspect Unix timestamps and dates.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 "timestamp" 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":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert and inspect Unix timestamps and dates. Operations: "to-date" — Convert a Unix timestamp (seconds) to a full date breakdown.; "parse-date" — Auto-detect and parse a date/timestamp string.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: to-date returns a different result on each call.
Annotations the server declares
- title: Unix Timestamp Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
toml-jsonConvert TOML 1.0 to JSON and JSON to TOML, reporting anything that cannot round-trip.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 "toml-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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert TOML 1.0 to JSON and JSON to TOML, reporting anything that cannot round-trip. Operations: "to-json" — Parse TOML and return pretty-printed JSON.; "to-toml" — Convert a JSON object to TOML (nulls are dropped with a warning).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: TOML to JSON Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
totpGenerate a time-based one-time password (TOTP) from a base32 secret.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 "totp" 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":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate a time-based one-time password (TOTP) from a base32 secret. Operations: "generate" — Generate the current TOTP code for a base32 secret.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
Annotations the server declares
- title: TOTP / 2FA Code Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
ulidGenerate a lexicographically sortable ULID.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 "ulid" 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":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate a lexicographically sortable ULID. Operations: "generate" — Generate a new ULID.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
Annotations the server declares
- title: ULID Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
urlParse, validate and normalize URLs.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 Parse, validate and normalize URLs. Operations: "parse" — Break a URL into its component parts.; "validate" — Validate a URL and run basic security/heuristic checks.; "normalize" — Normalize a URL (drop default ports, sort query params, strip trailing slash).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: URL Encoder & Decoder
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
url-encodePercent-encode and decode URL strings.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 and decode URL strings. Operations: "encode" — Percent-encode a string.; "decode" — Decode a percent-encoded string.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Batch URL Encoder & Parser
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
user-agentParse a User-Agent string into browser, engine, OS and device.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 Parse a User-Agent string into browser, engine, OS and device. Operations: "parse" — Parse a User-Agent string into browser, engine, OS and device details.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: User-Agent Parser
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
utmBuild campaign URLs with utm_* parameters, parse and lint tagged links, and strip UTM and click-ID tracking parameters.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 Build campaign URLs with utm_* parameters, parse and lint tagged links, and strip UTM and click-ID tracking parameters. Operations: "build" — Add UTM parameters to a URL, normalising case and spaces, and lint the result.; "parse" — Split a URL into UTM tags, ad click IDs and other parameters, with warnings.; "strip" — Remove utm_* and click-ID parameters (gclid, fbclid, msclkid…) from a URL.; "batch" — Tag many URLs (one per line) with the same UTM parameters.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: UTM Link Builder
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
uuidGenerate and inspect UUIDs.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":false}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate and inspect UUIDs. Operations: "v4" — Generate one or more random (v4) UUIDs.; "v3" — Generate a name-based (v3 / MD5) UUID.; "parse" — Parse a UUID and report its version, variant and (where present) timestamp.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: v4 returns a different result on each call.
Annotations the server declares
- title: UUID Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
wifi-qrBuild the standard WIFI: payload string for a WiFi QR code.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 Build the standard WIFI: payload string for a WiFi QR code. Operations: "payload" — Build the WIFI: payload string a phone scans to auto-join a network.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: WiFi QR Code Generator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
x509Decode PEM/DER X.509 certificates: subject, issuer, validity, SANs, key type/size, signature algorithm, extensions and fingerprints.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 PEM/DER X.509 certificates: subject, issuer, validity, SANs, key type/size, signature algorithm, extensions and fingerprints. Operations: "decode" — Decode every certificate in a PEM bundle (or one bare base64 DER).. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: decode returns a different result on each call.
Annotations the server declares
- title: X.509 Certificate Decoder
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
xmlPretty-print or minify already-serialized XML, and highlight it.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 Pretty-print or minify already-serialized XML, and highlight it. Operations: "format" — Pretty-print XML with the chosen indent (server-safe string transform).; "minify" — Collapse whitespace between XML tags (server-safe string transform).. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: XML Formatter & Validator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
yaml-jsonConvert between YAML and JSON.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 "yaml-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":true,"openWorldHint":false}; The description's first verb is "convert": a word for a change.
Description, as the server wrote it Convert between YAML and JSON. Operations: "yaml-to-json" — Convert YAML to JSON.; "json-to-yaml" — Convert JSON to YAML.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: YAML / JSON Converter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 12Claude Code: allow
cronDescribe cron expressions and compute upcoming run times.No findings
Why it is in this group
- The description's first verb is "describe": a word for reading.
Description, as the server wrote it Describe cron expressions and compute upcoming run times. Operations: "describe" — Produce a human-readable description of a cron expression.; "next-runs" — Compute the next N run times for a cron expression.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: next-runs returns a different result on each call.
Annotations the server declares
- title: Cron Expression Parser
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
diffCompute a line-by-line diff between two texts.No findings
Why it is in this group
- The name "diff" says "diff": a word for reading.
Description, as the server wrote it Compute a line-by-line diff between two texts. Operations: "compare" — Diff two texts and return the lines plus statistics.; "unified" — Produce a unified-diff text between two inputs.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Diff Checker
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
http-statusLook up and search HTTP status codes.No findings
Why it is in this group
- The name "http-status" says "status": a word for reading.
Description, as the server wrote it Look up and search HTTP status codes. Operations: "lookup" — Look up a single status code by number.; "search" — Search status codes by number, name or description.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: HTTP Status Code Lookup
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
ieee754Inspect IEEE 754 float32/float64: sign, exponent and mantissa bits, hex, the exact stored value and the rounding error.No findings
Why it is in this group
- The description's first verb is "inspect": a word for reading.
Description, as the server wrote it Inspect IEEE 754 float32/float64: sign, exponent and mantissa bits, hex, the exact stored value and the rounding error. Operations: "inspect" — Read a decimal (0.1, -2.5e-8, Infinity, NaN) or a bit pattern (0x3DCCCCCD, 32 or 64 binary digits) and show how float32 and float64 store it.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: IEEE 754 Float Inspector
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
json-diffCompare two JSON documents and report added, removed and changed values.No findings
Why it is in this group
- The name "json-diff" says "diff": a word for reading.
Description, as the server wrote it Compare two JSON documents and report added, removed and changed values. Operations: "diff" — Diff two JSON documents by path.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JSON Diff
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
json-schema-validatorValidate JSON data against a JSON Schema (drafts 2020-12, 2019-09, 7 and 4) and list each error with its data path and schema keyword.No findings
Why it is in this group
- The description's first verb is "validate": a word for reading.
Description, as the server wrote it Validate JSON data against a JSON Schema (drafts 2020-12, 2019-09, 7 and 4) and list each error with its data path and schema keyword. Operations: "validate" — Validate JSON data against a JSON Schema.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JSON Schema Validator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
jsonpathQuery a JSON document with a JSONPath expression.No findings
Why it is in this group
- The description's first verb is "query": a word for reading.
Description, as the server wrote it Query a JSON document with a JSONPath expression. Operations: "query" — Evaluate a JSONPath expression against a JSON document.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: JSONPath Evaluator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
key-inspectorInspect a CSR (subject, SANs, key, signature check), OpenSSH public keys (type, bits, ssh-keygen fingerprints) or a JWK / JWKS (RFC 7638 thumbprint, PEM and OpenSSH forms).No findings
Why it is in this group
- The description's first verb is "inspect": a word for reading.
Description, as the server wrote it Inspect a CSR (subject, SANs, key, signature check), OpenSSH public keys (type, bits, ssh-keygen fingerprints) or a JWK / JWKS (RFC 7638 thumbprint, PEM and OpenSSH forms). Private keys are refused. Operations: "inspect" — Inspect a PEM CSR or public key, OpenSSH public key lines (authorized_keys, known_hosts) or a JWK / JWK Set.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: CSR, SSH Key & JWK Inspector
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
luhnValidate check digits: Luhn card numbers (with brand), IBAN mod-97, ISBN-10/13 and EAN/UPC barcodes.No findings
Why it is in this group
- The description's first verb is "validate": a word for reading.
Description, as the server wrote it Validate check digits: Luhn card numbers (with brand), IBAN mod-97, ISBN-10/13 and EAN/UPC barcodes. Format only — nothing is looked up or stored. Operations: "validate" — Validate a number, auto-detecting its type or using the one you choose.; "check-digit" — Compute the Luhn or GS1 (EAN/UPC) check digit to append to a payload.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Luhn, IBAN & ISBN Validator
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
password-strengthAnalyze a password and estimate its entropy, strength and crack time.No findings
Why it is in this group
- The description's first verb is "analyze": a word for reading.
Description, as the server wrote it Analyze a password and estimate its entropy, strength and crack time. Operations: "analyze" — Analyze a password and estimate its entropy, strength and crack time.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Password Strength Checker
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
text-cleanupFind and remove invisible Unicode (zero-width, bidi/Trojan Source, tag-character smuggling), fix line endings, trailing whitespace, tabs and smart quotes, and normalise Unicode.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 and remove invisible Unicode (zero-width, bidi/Trojan Source, tag-character smuggling), fix line endings, trailing whitespace, tabs and smart quotes, and normalise Unicode. Operations: "scan" — Report invisible and special characters, hidden tag-character text, unterminated bidi controls, line endings and normalisation.; "clean" — Apply clean-ups and return the text plus counts of every change.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Text Cleanup & Invisible Characters
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
word-countCount words/characters and compute readability statistics.No findings
Why it is in this group
- The name "word-count" says "count": a word for reading.
Description, as the server wrote it Count words/characters and compute readability statistics. Operations: "count" — Compute basic text statistics (words, characters, sentences, etc.).; "readability" — Compute readability scores (Flesch, SMOG, Coleman-Liau).; "keywords" — Compute keyword density for the text.. Call with "operation" plus "input" (and "options" where relevant).
Annotations the server declares
- title: Word Counter
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http developer-tools https://programmes.net/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__developer-tools__diff",
"mcp__developer-tools__word-count",
"mcp__developer-tools__cron",
"mcp__developer-tools__http-status",
"mcp__developer-tools__password-strength",
"mcp__developer-tools__jsonpath",
"mcp__developer-tools__json-diff",
"mcp__developer-tools__luhn",
"mcp__developer-tools__text-cleanup",
"mcp__developer-tools__ieee754",
"mcp__developer-tools__key-inspector",
"mcp__developer-tools__json-schema-validator"
],
"ask": [
"mcp__developer-tools__json",
"mcp__developer-tools__xml",
"mcp__developer-tools__sql",
"mcp__developer-tools__html",
"mcp__developer-tools__base64",
"mcp__developer-tools__url",
"mcp__developer-tools__jwt",
"mcp__developer-tools__html-entity",
"mcp__developer-tools__url-encode",
"mcp__developer-tools__hash",
"mcp__developer-tools__uuid",
"mcp__developer-tools__password",
"mcp__developer-tools__bcrypt",
"mcp__developer-tools__random",
"mcp__developer-tools__timestamp",
"mcp__developer-tools__color",
"mcp__developer-tools__number-base",
"mcp__developer-tools__case",
"mcp__developer-tools__regex",
"mcp__developer-tools__lorem",
"mcp__developer-tools__json-csv",
"mcp__developer-tools__markdown",
"mcp__developer-tools__yaml-json",
"mcp__developer-tools__json-ts",
"mcp__developer-tools__contrast",
"mcp__developer-tools__image-base64",
"mcp__developer-tools__gitignore",
"mcp__developer-tools__slugify",
"mcp__developer-tools__chmod",
"mcp__developer-tools__wifi-qr",
"mcp__developer-tools__css-minify",
"mcp__developer-tools__curl-converter",
"mcp__developer-tools__json-schema",
"mcp__developer-tools__cidr",
"mcp__developer-tools__user-agent",
"mcp__developer-tools__color-palette",
"mcp__developer-tools__totp",
"mcp__developer-tools__data-size",
"mcp__developer-tools__mime",
"mcp__developer-tools__sort-lines",
"mcp__developer-tools__jwt-encode",
"mcp__developer-tools__ulid",
"mcp__developer-tools__string-escape",
"mcp__developer-tools__ascii",
"mcp__developer-tools__roman-numeral",
"mcp__developer-tools__morse-code",
"mcp__developer-tools__markdown-table",
"mcp__developer-tools__hmac",
"mcp__developer-tools__css-units",
"mcp__developer-tools__json-xml",
"mcp__developer-tools__char-inspector",
"mcp__developer-tools__semver",
"mcp__developer-tools__duration",
"mcp__developer-tools__nanoid",
"mcp__developer-tools__base-n",
"mcp__developer-tools__x509",
"mcp__developer-tools__env-json",
"mcp__developer-tools__toml-json",
"mcp__developer-tools__csp",
"mcp__developer-tools__security-headers",
"mcp__developer-tools__ipv6",
"mcp__developer-tools__utm",
"mcp__developer-tools__aspect-ratio",
"mcp__developer-tools__html-jsx",
"mcp__developer-tools__jsonc",
"mcp__developer-tools__date-calc",
"mcp__developer-tools__svg-data-uri",
"mcp__developer-tools__id-decoder",
"mcp__developer-tools__docker-compose",
"mcp__developer-tools__glob-tester",
"mcp__developer-tools__punycode",
"mcp__developer-tools__html-markdown",
"mcp__developer-tools__robots-txt",
"mcp__developer-tools__compress",
"mcp__developer-tools__saml-decoder"
],
"deny": []
}
}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 developer-tools. Review it before you use it.