# overview
Every call returns a JSON envelope: { "ok": true, "tool": "<slug>", "result": { … } }. Errors return { "ok": false, "tool": "<slug>", "error": "…", "code": <status> } with a matching HTTP status (400 bad input, 429 rate limited, 502 upstream).
# REST
Base URL https://invoker.tools/api/v1.
GET /api/v1/tools— discovery: every tool with its JSON-Schema input and an example.GET /api/v1/tools/{slug}— pass args as query string.POST /api/v1/tools/{slug}— pass args as a JSON body (content-type: application/json, max 64 KB).
# tools (36)
Each tool below is also a one-page web UI. net = makes an outbound DNS/TLS lookup (stricter rate limit); mcp = also exposed over MCP.
ipmcpweb UI →
Your public IP (IPv4/IPv6) as seen by the server, plus the request headers behind it.
dnsnetmcpweb UI →
Resolve A, AAAA, MX, TXT, NS, CNAME or SOA records for a domain via public resolvers.
| domain * | string — Domain to look up, e.g. example.com |
| type | A | AAAA | MX | TXT | NS | CNAME | SOA — DNS record type (default A) |
mxnetmcpweb UI →
List a domain's mail servers by priority and resolve each to its A/AAAA addresses.
| domain * | string — Domain to look up MX records for |
spfnetmcpweb UI →
Look up and parse a domain's SPF record; count DNS lookups and flag the all qualifier.
| domain * | string — Domain to check SPF for |
dmarcnetmcpweb UI →
Resolve and parse the _dmarc policy, with warnings for p=none, missing rua and pct<100.
| domain * | string — Domain to check DMARC for |
dkimnetmcpweb UI →
Fetch a DKIM public key by selector and flag revoked (empty p=) or test-mode keys.
| domain * | string — Signing domain (the DKIM d= value) |
| selector * | string — DKIM selector (the s= value), e.g. google |
rdnsnetmcpweb UI →
Reverse DNS (PTR) + forward-confirmed reverse DNS (FCrDNS) for an IP address.
| ip * | string — IPv4 or IPv6 address |
sslnetmcpweb UI →
Inspect a host's live TLS certificate: expiry, issuer, SANs, chain and trust. SSRF-guarded.
| host * | string — Hostname or host:port (default 443). Private targets are refused. |
whoisnetmcpweb UI →
WHOIS/RDAP registration data for a domain or IP: registrar, status, key dates and nameservers.
| query * | string — a domain (example.com) or an IP address |
dnsblnetmcpweb UI →
Check an IPv4 address (or a domain's A record) against ~10 well-known DNS blacklists.
| target * | string — IPv4 address or domain to check |
httpnetmcpweb UI →
Fetch a URL and report HTTP status, response headers, the redirect chain and timing. SSRF-guarded.
| url * | string — the http(s) URL to inspect |
upnetmcpweb UI →
Check whether a website is up: HTTP status, response time and final URL after redirects.
| url * | string — a URL or bare domain to check |
propagationnetmcpweb UI →
Query several public DNS resolvers and compare their answers to check DNS propagation.
| domain * | string — domain to check |
| type | A | AAAA | MX | TXT | NS | CNAME — record type (default A) |
uuidmcpweb UI →
Generate one or many RFC 4122 version 4 (random) UUIDs.
| count | string — how many, 1-100 (default 1) |
idsmcpweb UI →
Generate time-sortable ULID or UUIDv7 identifiers.
| kind | ulid | uuidv7 — identifier type (default ulid) |
| count | string — how many, 1-100 (default 1) |
passwordmcpweb UI →
Generate a cryptographically strong random password with chosen character sets.
| length | string — length 6-128 (default 20) |
| lower | string — include a-z (default true) |
| upper | string — include A-Z (default true) |
| digits | string — include 0-9 (default true) |
| symbols | string — include symbols (default true) |
| noAmbiguous | string — exclude ambiguous chars like O/0 (default false) |
passphrasemcpweb UI →
Generate a memorable diceware-style passphrase with an entropy estimate.
| words | string — number of words 2-12 (default 5) |
| separator | dash | dot | space | underscore — default dash |
| capitalize | string — capitalize each word (default true) |
| number | string — append a number (default true) |
hashmcpweb UI →
Compute a SHA-1/256/384/512 digest of text.
| text * | string — text to hash |
| algorithm | SHA-1 | SHA-256 | SHA-384 | SHA-512 — default SHA-256 |
base64mcpweb UI →
Encode or decode Base64 (UTF-8 safe).
| text * | string — text to encode, or Base64 to decode |
| mode | encode | decode — default encode |
jwtmcpweb UI →
Decode a JWT header + payload and read exp/iat/nbf. Signature is NOT verified.
| token * | string — the JWT (header.payload.signature) |
jsonmcpweb UI →
Format (pretty-print), minify and validate JSON.
| json * | string — JSON text |
| mode | format | minify — default format |
| indent | string — spaces for format (default 2) |
casemcpweb UI →
Convert text case (upper/lower/title/sentence/camel/pascal/snake/kebab/constant) with counts.
| text * | string — text to convert |
| case * | upper | lower | title | sentence | camel | pascal | snake | kebab | constant — target case |
numbersmcpweb UI →
Convert an integer between binary, octal, decimal, hex and any base 2-36 (BigInt).
| value * | string — the integer, in the input base |
| from | string — input base 2-36 (default 10) |
| to | string — an extra output base 2-36 |
chmodmcpweb UI →
Convert a Unix octal file mode to symbolic notation and the chmod command.
| mode * | string — octal mode, e.g. 755 or 1777 |
subnetmcpweb UI →
IPv4 CIDR breakdown: network, broadcast, mask, wildcard, host range and usable count.
| cidr * | string — IPv4 address with optional /prefix, e.g. 192.168.1.10/24 |
cronmcpweb UI →
Validate a 5-field cron expression and return the next run times (UTC).
| expr * | string — cron expression: min hour day-of-month month day-of-week |
| count | string — how many next runs, 1-20 (default 5) |
totpmcpweb UI →
Generate a TOTP secret + otpauth URI, or compute the current 6-digit code for a secret (RFC 6238).
| secret | string — base32 secret; omit to generate a new one |
| issuer | string — issuer label (default invoker.tools) |
| account | string — account label (default user@example.com) |
metamcpweb UI →
Generate SEO + Open Graph + Twitter Card meta tags for a page.
| title * | string — page title |
| description * | string — meta description |
| url | string — canonical URL |
| image | string — share image URL |
| site | string — site name |
| card | summary_large_image | summary — twitter card (default summary_large_image) |
loremmcpweb UI →
Generate Lorem Ipsum placeholder text by paragraphs, sentences or words.
| count | string — amount, 1-50 (default 3) |
| unit | paragraphs | sentences | words — default paragraphs |
palettemcpweb UI →
Generate a harmonious 5-colour palette (random/analogous/complementary/triad/monochrome).
| scheme | random | analogous | complementary | triad | monochrome — default random |
headersmcpweb UI →
Parse raw email headers into a hop timeline with delays, SPF/DKIM/DMARC results and source IP.
| headers * | string — raw email headers (paste the full block) |
timestampmcpweb UI →
Convert between a Unix timestamp (seconds or milliseconds) and a human-readable UTC date.
| value | string — a Unix timestamp or a date string; omit for the current time |
urlmcpweb UI →
URL-encode or decode text (percent-encoding), in component or full-URL mode.
| text * | string — text to encode, or encoded text to decode |
| mode | encode | decode — default encode |
| full | string — treat as a full URL (encodeURI) instead of a component (default false) |
yamlmcpweb UI →
Convert between JSON and YAML.
| text * | string — JSON or YAML source |
| from | json | yaml — input format (default json) |
diffmcpweb UI →
Line-by-line diff of two texts, marking added, removed and unchanged lines.
| a * | string — original text |
| b * | string — changed text |
wordcountmcpweb UI →
Count characters, words, lines, sentences and paragraphs, with a reading-time estimate.
| text * | string — text to analyze |
# MCP
A public MCP server (Streamable HTTP) is mounted at https://invoker.tools/api/mcp. It exposes 36 tools — ip, dns, mx, spf, dmarc, dkim, rdns, ssl, whois, dnsbl, http, up, propagation, uuid, ids, password, passphrase, hash, base64, jwt, json, case, numbers, chmod, subnet, cron, totp, meta, lorem, palette, headers, timestamp, url, yaml, diff, wordcount — backed by the same logic as the REST API. Point any MCP client at it:
# OpenAPI
A machine-readable OpenAPI 3.1 description of every REST endpoint lives at /api/openapi.json. Load it into Swagger UI, Postman, or generate a client from it. For AI agents and crawlers, see /llms.txt.