# 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 (42)
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) |
portnetmcpweb UI →
Check whether a TCP port is open on a host: open / closed / filtered verdict, resolved IP and connect timing. SSRF-guarded.
| host * | string — Hostname or IP, optionally host:port (e.g. example.com or example.com:22). Private targets are refused. |
| port | string — TCP port 1-65535 (optional if given as host:port) |
| timeout | string — Connect timeout in ms (default 5000, max 10000) |
mailchecknetmcpweb UI →
Composite mail-deliverability check for a domain: MX, SPF, DMARC, DKIM, the MX host's PTR/FCrDNS and blacklist status, scored.
| domain * | string — Domain to check mail deliverability for, e.g. example.com |
| selectors | string — Comma-separated DKIM selectors to probe (optional; defaults to common ones) |
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 |
ttfbnetmcpweb UI →
Measure time-to-first-byte repeatedly and report latency stability (median, p95, jitter, spikes), CDN cache hit/miss and response headers. Returns every sample plus aggregate statistics.
| url * | string — URL or bare domain to measure; redirects are resolved once up front |
| samples | string — number of probes, 1-10 (default 5) |
| interval | string — milliseconds between probes, 250-5000 (default 1000) |
robotsnetmcpweb UI →
Show how crawlers see a URL: robots.txt rules and how they are interpreted per bot, X-Robots-Tag and meta robots, llms.txt, sitemaps, and whether search engines and AI crawlers are allowed to crawl and index it.
| url * | string — the page URL to check; robots.txt and llms.txt are read from its origin |
dnssecnetmcpweb UI →
Debug the DNSSEC chain of trust for a domain: walks root → TLD → zone via the authoritative servers, matches DS records against DNSKEYs, verifies the RRSIG signatures and validity windows, compares every nameserver, and shows what validating resolvers (Cloudflare, Google, Quad9) make of it. Tells secure, insecure, bogus and plain DNS outage apart.
| domain * | string — domain or hostname to check |
emailhostnetmcpweb UI →
Find out who hosts email for a domain: mailbox provider, security gateway and sending services, fingerprinted from MX, SPF and autodiscover.
| domain * | string — Domain whose email host you want to identify |
# MCP
A public MCP server (Streamable HTTP) is mounted at https://invoker.tools/api/mcp. It exposes 42 tools — ip, dns, mx, spf, dmarc, dkim, rdns, ssl, whois, dnsbl, http, up, propagation, port, mailcheck, uuid, ids, password, passphrase, hash, base64, jwt, json, case, numbers, chmod, subnet, cron, totp, meta, lorem, palette, headers, timestamp, url, yaml, diff, wordcount, ttfb, robots, dnssec, emailhost — 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.