dot.tools
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
28 developer utilities for LLMs: format, convert, encode, decode, generate and validate — JSON, YAML, XML, SQL, JWT, certificates, CIDR subnets, cron, hashes, UUIDs, passwords, QR codes and more. Stateless, fast, free.
| Author | Bitgate |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 274 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"dot.tools": {
"url": "https://dot.tools/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (28)
base64read-onlyEncode and decode Base64 strings online. Supports UTF-8 text and binary data.
Parameters:
mode(required) — string — Whether to encode raw text to Base64 or decode Base64 back to text.input(required) — string — The raw text to encode, or the Base64 string to decode.
Hints: read-only yes · destructive no · idempotent yes · open-world no
case-converterread-onlyConvert case online: camelCase, PascalCase, snake_case, SCREAMING_SNAKE_CASE, kebab-case, Title Case and more. Smart acronym and digit splitting. Free, instant, no sign-up.
Parameters:
text(required) — string — The text to convert, in any mix of camelCase, PascalCase, snake_case, kebab-case or plain words.target(required) — string — Target case: camel (camelCase), pascal (PascalCase), snake (snake_case), screaming-snake (SCREAMING_SNAKE_CASE), kebab (kebab-case), lower (lower case), upper (UPPER CASE) or title (Title Case).
Hints: read-only yes · destructive no · idempotent yes · open-world no
color-converterread-onlyConvert color codes between HEX, RGB, HSL, HWB and OKLCH. CSS keyword and Tailwind v3 matching, WCAG contrast ratios. Free, instant, no sign-up.
Parameters:
color(required) — string — Color in any sRGB notation: #rgb/#rgba/#rrggbb/#rrggbbaa, rgb()/rgba(), hsl()/hsla(), hwb() (comma or space/slash syntax), or a CSS color keyword. OKLCH input is not accepted (out-of-gamut mapping), but OKLCH output is always provided.
Hints: read-only yes · destructive no · idempotent yes · open-world no
contrast-checkerread-onlyCheck color contrast against WCAG 2.x AA and AAA thresholds. Live preview, exact ratio, and pass/fail for normal text, large text and UI components. Free, instant.
Parameters:
foreground(required) — string — Foreground (text/icon) color. Opaque color as #rgb/#rrggbb, rgb(), hsl(), hwb() or a CSS keyword (e.g. rebeccapurple). Colors with alpha below 1 are rejected — WCAG contrast is defined for opaque colors only.background(required) — string — Background color. Opaque color as #rgb/#rrggbb, rgb(), hsl(), hwb() or a CSS keyword (e.g. rebeccapurple). Colors with alpha below 1 are rejected — WCAG contrast is defined for opaque colors only.
Hints: read-only yes · destructive no · idempotent yes · open-world no
cron-parserread-onlyParse cron expressions into plain English. See next run times, field-by-field breakdowns, and clear validation errors.
Parameters:
expression(required) — string — A standard 5-field cron expression: minute hour day-of-month month day-of-week. Supports *, lists, ranges, steps, and month/weekday names.count(required) — integer — How many upcoming execution times to compute (max 10).from— string — ISO-8601 start time for the next-execution preview. Defaults to now. Computed in UTC.
Hints: read-only yes · destructive no · idempotent yes · open-world no
diff-checkerread-onlyCompare two texts or JSON documents online and see every change highlighted line by line. Whitespace-insensitive and key-sorted JSON modes. Free and instant.
Parameters:
mode(required) — string — Compare raw text line-by-line, or parse both sides as JSON first (semantic compare).a(required) — string — Original (old) content.b(required) — string — Changed (new) content.ignoreWhitespace(required) — boolean — Ignore leading/trailing whitespace on each line when comparing (jsdiff ignoreWhitespace semantics).sortKeys(required) — boolean — JSON mode only: recursively sort object keys before comparing, so pure key-order differences produce no diff. Arrays keep their order.
Hints: read-only yes · destructive no · idempotent yes · open-world no
csv-jsonread-onlyConvert CSV to JSON and JSON to CSV online. Handles quoted fields, Excel semicolon exports and ragged rows. Free, fast, no sign-up.
Parameters:
mode(required) — string — Conversion direction: CSV to JSON, or JSON to CSV.input(required) — string — The CSV or JSON text to convert (max 1 MB).delimiter(required) — string — Field delimiter. "auto" sniffs the first 10 records when converting CSV to JSON, and resolves to a comma when converting JSON to CSV.hasHeader(required) — boolean — CSV → JSON only: treat the first row as object keys. When false, rows convert to arrays of strings.indent(required) — string — CSV → JSON only: number of spaces per indentation level in the JSON output.
Hints: read-only yes · destructive no · idempotent yes · open-world no
hash-calcread-onlyCalculate MD5, SHA-1, SHA-256, SHA-384 and SHA-512 hashes online. Hash text or files securely in your browser — nothing is uploaded.
Parameters:
text(required) — string — The UTF-8 text to hash with all supported algorithms.
Hints: read-only yes · destructive no · idempotent yes · open-world no
html-entitiesread-onlyEncode and decode HTML entities online.
Parameters:
text(required) — string — The text to entity-encode, or the entity-encoded string to decode.mode(required) — string — Whether to encode plain text into HTML entities or decode entities back to text.encodeNonAscii— boolean — Encode mode only: also escape non-ASCII characters as hexadecimal numeric references (e.g. 😀 becomes 😀).
Hints: read-only yes · destructive no · idempotent yes · open-world no
json-escaperead-onlyEscape text for JSON strings and unescape JSON string contents online.
Parameters:
text(required) — string — The raw text to escape, or the JSON-escaped string to unescape.mode(required) — string — Whether to escape raw text for embedding in a JSON string or unescape a JSON string back to raw text.includeQuotes— boolean — Escape mode only: include the surrounding double quotes in the output (default false).
Hints: read-only yes · destructive no · idempotent yes · open-world no
json-formatterread-onlyFormat, beautify, minify, and validate JSON online. Custom indentation, key sorting, and precise error locations.
Parameters:
mode(required) — string — Beautify with indentation, minify to a single line, or validate only.input(required) — string — The JSON text to format, minify, or validate.indent(required) — string — Indentation used when beautifying: 2 spaces, 4 spaces, or tabs.sortKeys(required) — boolean — Sort object keys alphabetically (recursively) before output.
Hints: read-only yes · destructive no · idempotent yes · open-world no
json-schemaread-onlyValidate JSON against a JSON Schema or generate a draft 2020-12 schema from sample data. Detailed error paths, format detection, free and browser-based.
Parameters:
mode(required) — string — validate: check an instance against a schema. generate: infer a draft 2020-12 schema from a sample document.instance(required) — string — The JSON document to validate (max 1 MB in validate mode) or to infer a schema from (max 5 MB in generate mode).schema— string — Required in validate mode: the JSON Schema (draft 2020-12) as JSON text, max 1 MB. Local $refs only; remote refs are never fetched.
Hints: read-only yes · destructive no · idempotent yes · open-world no
json-to-typescriptread-onlyTurn any JSON payload into TypeScript interfaces online. Merges array item shapes, marks missing keys optional and dedupes identical structures. Free, no sign-up.
Parameters:
json(required) — string — The JSON document to generate TypeScript types for (max 5 MB).rootName(required) — string — Name for the root interface or type alias. Sanitized to PascalCase and must form a valid TypeScript identifier.exportKeyword(required) — boolean — Prefix every declaration with the export keyword.optionalWhenMissing(required) — boolean — Mark fields missing from some array items as optional (?). When false, they stay required with undefined added to the type union.
Hints: read-only yes · destructive no · idempotent yes · open-world no
xml-formatterread-onlyFormat, beautify, minify, and validate XML online. Proper indentation, clear error detection with line numbers.
Parameters:
mode(required) — string — Beautify with indentation, minify to a single line, or validate only.input(required) — string — The XML document to format, minify, or validate.indent(required) — string — Indentation used when beautifying: 2 spaces, 4 spaces, or tabs.
Hints: read-only yes · destructive no · idempotent yes · open-world no
yaml-jsonread-onlyConvert YAML to JSON and JSON to YAML online. Bidirectional, validated conversion with error locations.
Parameters:
mode(required) — string — Conversion direction: YAML to JSON, or JSON to YAML.input(required) — string — The YAML or JSON text to convert.indent(required) — string — Number of spaces per indentation level in the output.
Hints: read-only yes · destructive no · idempotent yes · open-world no
jwt-decoderread-onlyDecode and inspect JSON Web Tokens online. View header, payload, claims and expiry — with optional HMAC (HS256/384/512) signature verification.
Parameters:
token(required) — string — The JSON Web Token to decode (header.payload.signature).
Hints: read-only yes · destructive no · idempotent yes · open-world no
certificate-decoderread-onlyDecode X.509 certificates and CSRs online: PEM, DER, multi-cert bundles, SANs, extensions, fingerprints, chain signature checks — free, runs locally.
Parameters:
pem(required) — string — PEM text with one or more blocks (CERTIFICATE and CERTIFICATE REQUEST are parsed; PRIVATE KEY blocks are skipped with a warning; PKCS#7/CMS is rejected per block), or a single bare-base64 DER object. Mixed bundles and trailing garbage are tolerated with warnings. Maximum 16 blocks, 64KB decoded DER per block.nowMs— number — Optional Unix epoch milliseconds used as 'now' for validity status and deltas. Omit for a clock-free response: no status fields are emitted at all.
Hints: read-only yes · destructive no · idempotent yes · open-world no
url-encoderead-onlyPercent-encode and decode URLs and query strings online.
Parameters:
mode(required) — string — Whether to percent-encode or percent-decode the input.scope(required) — string — component encodes/decodes every reserved character (like encodeURIComponent); full preserves URL structure characters like / : ? & = # (like encodeURI).input(required) — string — The text to encode, or the percent-encoded string to decode.
Hints: read-only yes · destructive no · idempotent yes · open-world no
url-parserread-onlyParse any URL into protocol, auth, host, port, path, query params and fragment. Edit query parameters in a decoded table.
Parameters:
url(required) — string — The absolute URL to parse, including protocol.params— array — Optional replacement query parameters — when given, the URL is rebuilt with these and the result reflects the new URL.
Hints: read-only yes · destructive no · idempotent yes · open-world no
pwd-genread-onlyGenerate cryptographically secure passwords up to 128 characters. Custom character sets, ambiguous-character filter, strength meter.
Parameters:
length(required) — integer — Password length (8–128 characters).lowercase(required) — boolean — Include lowercase letters (a–z).uppercase(required) — boolean — Include uppercase letters (A–Z).digits(required) — boolean — Include digits (0–9).symbols(required) — boolean — Include symbols (!@#$%^&*…).excludeAmbiguous(required) — boolean — Exclude ambiguous characters (I, l, 1, O, 0).count(required) — integer — How many passwords to generate (1–20).
Hints: read-only yes · destructive no · idempotent yes · open-world no
uuid-genread-onlyGenerate UUID v4, UUID v7 and ULIDs online. Bulk generation up to 1000 IDs, uppercase and hyphen options, instant copy.
Parameters:
format(required) — string — The identifier format to generate.count(required) — integer — How many IDs to generate (1–1000).uppercase(required) — boolean — Uppercase the generated IDs.hyphens(required) — boolean — Include hyphens in UUIDs (ignored for ULID).
Hints: read-only yes · destructive no · idempotent yes · open-world no
mock-dataread-onlyGenerate realistic mock data for testing: fake people, emails, addresses, companies, products, UUIDs and more. Export as JSON, CSV or SQL.
Parameters:
rows(required) — integer — Number of records to generate.fields(required) — array — Fields to include in each record, in column order.format(required) — string — Export format.tableName(required) — string — Target table name for SQL INSERT statements.
Hints: read-only yes · destructive no · idempotent yes · open-world no
sql-beautifyread-onlyFormat and beautify SQL queries online. Supports PostgreSQL, MySQL, SQLite, SQL Server and Oracle. Keyword casing and custom indentation.
Parameters:
sql(required) — string — The SQL query or script to format.dialect(required) — string — The SQL dialect to parse and format for.keywordCase(required) — string — Letter case applied to SQL keywords.indentSize(required) — integer — Number of spaces per indentation level.
Hints: read-only yes · destructive no · idempotent yes · open-world no
unix-timestampread-onlyConvert unix timestamps to dates and dates to epoch seconds or milliseconds online. Live clock, timezone-aware output, free and fast.
Parameters:
mode(required) — string — Conversion direction: unix timestamp to date, or date to unix timestamp.input(required) — string — For unix-to-date: a unix timestamp (integer or fractional seconds). For date-to-unix: an ISO 8601 date string. Strings without a timezone offset are interpreted as UTC.unit(required) — string — Unit of the input timestamp for unix-to-date. "auto" treats absolute values >= 1e12 as milliseconds, otherwise seconds. Ignored for date-to-unix.
Hints: read-only yes · destructive no · idempotent yes · open-world no
qr-generatorread-onlyCreate QR codes for links, WiFi networks, text and email online. Custom colors, error correction and margins. Download as SVG or PNG — free, no sign-up.
Parameters:
payload(required) — string — The content to encode: URL, text, WIFI: payload, mailto: link, etc.ecLevel(required) — string — Error correction level: L (7%), M (15%), Q (25%) or H (30%) damage tolerance. Higher levels hold less data.margin(required) — integer — Quiet zone width in modules (0–16). The QR spec recommends at least 4.foreground(required) — string — Hex color of the dark modules.background(required) — string — Hex color of the light modules and quiet zone.
Hints: read-only yes · destructive no · idempotent yes · open-world no
chmod-calcread-onlyConvert chmod permissions between octal (755) and symbolic (rwxr-xr-x) online. Handles setuid, setgid and sticky bits — free and instant.
Parameters:
octal— string — Octal permission value: 3 or 4 digits (0-7), optional leading zero. Examples: 755, 0644, 4755.symbolic— string — Symbolic permission string: 9 characters (rwxrwxrwx with s/S/t/T substitutions), or a 10-character ls -l string with a leading file-type character.
Hints: read-only yes · destructive no · idempotent yes · open-world no
cidr-calculatorread-onlyCalculate network, broadcast, subnet mask and host counts from CIDR notation, or summarize any IP range into minimal CIDR blocks. IPv4 + IPv6 — free.
Parameters:
mode(required) — string — "cidr" analyzes one CIDR block (network, broadcast, masks, host counts). "range" summarizes an arbitrary start-end IP range into the minimal set of CIDR blocks.end— string — Required when mode is "range". Last address of the range, same family as start and not smaller.cidr— string — Required when mode is "cidr". IPv4 or IPv6 CIDR notation, e.g. "192.0.2.0/24" or "2001:db8::/32". IPv4 rejects leading zeros and short/hex forms; IPv6 accepts one "::" compression and embedded IPv4 tails.start— string — Required when mode is "range". First address of the range, IPv4 or IPv6.normalize— boolean — When false (default), a CIDR with host bits set (e.g. "10.0.0.1/8") fails with errorCode HOST_BITS_SET and a suggestion field carrying the network CIDR. When true, the address is masked to its network and the result has normalized=true.
Hints: read-only yes · destructive no · idempotent yes · open-world no
number-baseread-onlyConvert numbers between binary, octal, decimal, hexadecimal and any base 2-36 online. Arbitrary precision, clear digit errors — free.
Parameters:
value(required) — string — The number to convert, written in fromBase. Digits 0-9 and a-z (case-insensitive); optional leading - or + sign. 0x/0b/0o prefixes are accepted only when they match fromBase (16/2/8). Negative values convert sign-magnitude: the minus sign is carried to every output.fromBase(required) — integer — The base the value is written in, 2-36.toBase— integer — Optional extra base to convert into, returned as custom.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.